节点sass不了解代字号

浏览最近发布的Angular2的RC1的angular-cli ,我遇到了一个奇怪的问题: angular-cli中的sass插件中的node-sass在包名抛出之后不会parsing~错误:

 Error: File to import not found or unreadable: ~@angular2-material/core/style/theme-functions 

它在编译下面的代码时发生:

 @import "~@angular2-material/core/style/theme-functions"; 

如果我删除代字符,一切都会好的。 这是正确的行为,还是有一个path,使node-sass了解?

PS我使用WebStorm,它更喜欢使用~也。 如果代字号被省略,则表示parsingpath不可行。 一些谷歌search后,我发现使用没有代字号的代码是遗留的,应该用作最佳实践。 这样对吗?

Tildepathparsing是webpack所做的,node-sass没有内置这样的parsing器。对于webpack, sass-loader有这个。 您可以自己编写导入解决scheme。

为了完整起见,你可以在没有webpack / sass-loader的情况下使用自定义导入器:

 function importer(url, prev, done) { if (url[0] === '~') { url = path.resolve('node_modules', url.substr(1)); } return { file: url }; }