gruntjs - 如何解决 node-sass 回归(?) "It' s 不清楚要为 @import 导入哪个文件”

标签 gruntjs libsass node-sass

似乎是 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 )的文件也会发生这种情况。似乎没有认识到这些文件是部分文件。

最佳答案

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

关于gruntjs - 如何解决 node-sass 回归(?) "It' s 不清楚要为 @import 导入哪个文件”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33612388/

相关文章:

angularjs - npm lite-server 无法识别 css 中的更改

css - 从我使用 create-react-app 的 react 元素中删除 node-sass

css - 使用导入模块中的变量时 SASS 'Invalid css error'

build - 在 Docker 容器中编译 libsass

javascript - 如何使用 requirejs 加载缩小的串联 js 文件

javascript - grunt-contrib-requirejs 是否意味着替换标准 RequireJS 配置文件?

node.js - 在 Node/Grunt 中执行特定于操作系统的脚本

node.js - Grunt SASS contrib 不会在目标目录中生成 css 文件

node.js - 在 nodejs 中使用 node-sass 时找不到 libsass 绑定(bind)

sass - 是否可以使用 Webpack 和 sass 加载程序将 NODE_ENV 参数注入(inject) sass 文件?