最近版本的node-sass
(3.4.1)似乎打破了我们的构建。我一直收到此错误消息:
It's not clear which file to import for '@import "../file"'.
Candidates:
../file.scss
../file.css
Please delete or rename all but one of these files.
现在,对于项目中未明确指定名称中的“file.scss”的所有文件,都会出现这种情况。
我无法确定针对此错误的修复程序 - 我也无法找到任何文档来解决node-sass
中导致此问题的更改。我们有太多文件可以重命名每次导入。
有人能指出我正确的方向吗?
对于在其路径中具有下划线(例如。_file
)的文件,也会发生这种情况。似乎没有意识到这些文件是偏僻的。
答案 0 :(得分:8)
我遇到了同样的问题,但只有node-sass
版本3.4.2。版本3.4.1对我来说没问题。
这似乎是node-sass
- https://github.com/sass/node-sass/issues/1222中的已知问题,但不清楚哪些版本会受到影响。
我通过卸载grunt-sass
,然后安装正常工作的node-sass
的确切版本(v3.4.1),然后最终重新安装grunt-sass
来修复它。
$ npm uninstall grunt-sass
$ npm install node-sass@3.4.1 --save-dev
$ npm install grunt-sass
这意味着grunt-sass
使用您安装的版本,而不是安装自己定义为"node-sass": "^3.4.0"
的版本
奇怪的是,即使我在安装命令中指定了一个确切的版本,我仍然在我的package.json中找到了这个:
"node-sass": "^3.4.1"
所以我手动将其更改为确切版本,以便团队中的其他开发人员获得正确的版本:
"node-sass": "3.4.1"
当然,如果您发现唯一适合您的版本是v3.3.0,那么请在上面的说明中使用该版本。
答案 1 :(得分:7)
您可以使用文件扩展名
导入@import "../file.scss"
或者您可以告诉SASS不要通过导出生成.css
文件而不输出。您必须将文件从file.scss
重命名为_file.scss
这样可以像这样导入
@import "../file"
我更喜欢选项2,因为它减少了您必须跟踪的css
个文件的数量。