Gruntjs 如何解决节点sass回归(?);它';s不清楚为@import"导入哪个文件;

Gruntjs 如何解决节点sass回归(?);它';s不清楚为@import"导入哪个文件;,gruntjs,libsass,node-sass,Gruntjs,Libsass,Node Sass,最近版本的节点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”的文件都会出现这种

最近版本的
节点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”的文件都会出现这种情况


我无法确定此错误的修复方法-我也找不到任何文档来说明
节点sass中发生了哪些更改导致了此错误。我们有太多的文件,不可能对每个导入进行重命名

有人能给我指出正确的方向吗

编辑: 在路径中有下划线的文件(例如
\u file
)也会发生这种情况。似乎无法识别这些文件是部分文件。

选项1 可以使用文件扩展名导入

@import "../file.scss"
选择2 或者,您可以告诉SASS不要通过导入而不输出来生成
.css
文件。您必须将文件从
file.scss
重命名为
\u file.scss

那会让你像这样导入

@import "../file"

我更喜欢选项2,因为它减少了您必须跟踪的
css
文件的数量。

我也遇到了同样的问题,但仅限于
节点sass
版本3.4.2。3.4.1版对我来说还可以

这似乎是
节点sass中的一个已知问题
——但不清楚哪些版本受到影响

我通过卸载
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
使用您安装的版本,而不是安装自己定义为
节点sass的版本“^3.4.0”

奇怪的是,尽管我在install命令中指定了一个确切的版本,但在我的package.json中仍然出现了以下内容:

"node-sass": "^3.4.1"
因此,我手动将其更改为准确的版本,以便团队中的其他开发人员能够获得正确的版本:

"node-sass": "3.4.1"

当然,如果您发现唯一适用于您的版本是v3.3.0,请在上面的说明中使用该版本。

“我们有太多的文件,因此重命名每个@import是不切实际的”。我可以浏览100多个文件,但这不可行。将节点sass降级到@3.3为我解决了这个问题。我希望有一种方法可以绕过这个问题,因为它以前从来都不是问题。我们已经在使用部分表示法(
\u file.scss
)。无论如何都会抛出此错误。谢谢。最后我也这么做了,很高兴知道这是一个众所周知的问题。我退回到节点-sass@3.3,很高兴知道@3.4.1也能工作。