如何解决 node-sass 回归(?)"It's not clear which file to import for @import"
How to address node-sass regression(?) "It's not clear which file to import for @import"
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
)的文件也会发生这种情况。似乎没有意识到这些文件是部分文件。
选项 1
您可以使用文件扩展名导入
@import "../file.scss"
选项 2
或者您可以告诉SASS不要通过导入而不输出来生成.css
文件。您必须将文件从 file.scss
重命名为 _file.scss
这会让你像这样导入
@import "../file"
我更喜欢选项 2,因为它减少了您必须跟踪的 css
个文件的数量。
我遇到了同样的问题,但仅限于 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,那么请在上面的说明中使用该版本。
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
)的文件也会发生这种情况。似乎没有意识到这些文件是部分文件。
选项 1
您可以使用文件扩展名导入
@import "../file.scss"
选项 2
或者您可以告诉SASS不要通过导入而不输出来生成.css
文件。您必须将文件从 file.scss
重命名为 _file.scss
这会让你像这样导入
@import "../file"
我更喜欢选项 2,因为它减少了您必须跟踪的 css
个文件的数量。
我遇到了同样的问题,但仅限于 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,那么请在上面的说明中使用该版本。