节点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 }; }