5

(3.4.1)的最新版本似乎node-sass破坏了我们的构建。我一直收到此错误消息:

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路径中带有下划线(例如 )的文件也会发生这种情况。似乎没有认识到这些文件是部分文件。

4

2 回答 2

8

我有同样的问题,但只有node-sass3.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,那么请在上面的说明中使用该版本。

于 2015-11-13T14:34:49.353 回答
7

选项1

您可以使用文件扩展名导入

@import "../file.scss"

选项 2

.css或者您可以告诉 SASS 不要通过导入而不输出来生成文件。您必须将文件重命名file.scss_file.scss

这会让你像这样导入

@import "../file"

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

于 2015-11-09T17:26:36.463 回答