我有问题构建一个应用程序,因为node-sass不断失败的错误。

binding /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node出错 Node Sass无法找到当前环境的绑定:OS X 64位的Node 0.10.x

我试过跑步

npm rebuild node-sass

二进制很好;退出。

当运行node -v时,我得到v6.2.2

这与sass错误说的“Node 0.10.x”不同。我不明白为什么它会得到错误的版本。我也尝试删除node_modules文件夹并运行npm update或npm install,这两者都没有解决问题。什么好主意吗?


当前回答

我只是运行npm rebuild而不是npm rebuild node-sass,问题就消失了。但我不知道背后的魔力是什么。

其他回答

Docker相关的答案在这里*

回答如果你看到这个问题,或类似的东西,并正在使用Docker。

原因:当将当前文件结构复制到Docker容器内部时,你可能会将节点模块从一个OS系统复制到另一个OS系统(例如,从Mac到Linux容器)。

解决方案:

添加一个.dockerignore,然后在里面添加:

node_modules

这将导致npm install为docker环境而不是本地机器环境安装绑定。

在某些情况下,您需要卸载并安装node-sass库。试一试:

npm uninstall --save node-sass

and

npm install --save node-sass

看看这个,它为我工作, 堆栈链接在这里

在“node_modules/node-sass/vendor/linux-x64-46/”目录下新建一个目录。 从https://github.com/sass/node-sass/releases下载文件 (linux-x64-59_binding.node)。 将其粘贴到node_modules/node-sass/vendor/linux-x64-46/重命名为binding.node

对于Visual Studio 2015/2017,右键单击您的包。单击“还原包”。

这将确保Visual Studio工具外部工具中的npm运行,并且绑定将基于此重新构建。

我也遇到过类似的问题,原因是我的机器上安装了两个版本的Node:一个是“全局”版本,另一个是项目级别的版本。 只有在Gulp构建在Node.js 4下运行时,Sass才能正确构建。x版本,因此请确保升级了您正在使用的Node版本。

PS:如果你完全删除项目中的node_modules文件夹并从头开始重新构建,npm将下载当前系统和节点版本的正确依赖项。