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也能工作。