【发布时间】:2016-09-03 12:36:21
【问题描述】:
探索最近发布的Angular2的RC1的angular-cli我遇到了一个奇怪的问题:angular-cli中的sass插件中的node-sass在包名之前没有解析~,抛出以下错误:
Error: File to import not found or unreadable: ~@angular2-material/core/style/theme-functions
在编译以下代码时发生:
@import "~@angular2-material/core/style/theme-functions";
如果我删除波浪号,一切都会好起来的。这是正确的行为,还是有办法让node-sass 理解~?
P.S. 我使用 WebStorm,它也更喜欢使用 ~。如果省略波浪号,则会抱怨无法解析路径。经过一番谷歌搜索后,我发现使用不带波浪号的代码是遗留问题,应该使用~ 作为最佳实践。这样对吗?
【问题讨论】:
-
波浪线路径解析是 webpack 所做的,node-sass 没有内置这样的解析器。用于 webpack 的 sass-loader 有这个,但没有那个奇怪的
@符号。不过,您可以编写自己的导入解决方案 - github.com/sass/node-sass#importer--v200---experimental -
@DominicTobias,谢谢,它有效。你能把它写成答案吗?关于
@-symbol - 它是 npm 包名称的一部分,拆分为单独下载的部分。例如。angular2包被拆分为@angular/core、@angular/http等。就 node-sass 而言,它只是文件夹名称的一部分。 -
啊,我明白了——当然,谢谢