我有问题构建一个应用程序,因为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,这两者都没有解决问题。什么好主意吗?


当前回答

卸载和安装sass包对于手动过程很有效,但对于自动部署/CI/CD,你需要更通用的方法。对我来说,适用于不同环境的Continuos部署是:

在部署前使用rimraf删除旧的node_modules rimraf node_modules 更新npm包中的sass包。Json &提交到源代码控制。

对于下一次部署,它将自动刷新所有环境的sass。

其他回答

这通常是因为运行npm install后环境发生了变化。 运行npm rebuild node-sass为当前环境构建绑定。

卸载和安装sass包对于手动过程很有效,但对于自动部署/CI/CD,你需要更通用的方法。对我来说,适用于不同环境的Continuos部署是:

在部署前使用rimraf删除旧的node_modules rimraf node_modules 更新npm包中的sass包。Json &提交到源代码控制。

对于下一次部署,它将自动刷新所有环境的sass。

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

如果你的终端/命令提示符显示:

Node Sass could not find a binding 
for your current environment: 
OS X 64-bit with Node 0.10.x

并且您已经尝试了以下命令,例如:

npm cache clean --force 
rm -rf node_modules 
npm install 
npm rebuild node-sass

仍然没有工作…

只需在终端中手动运行:node node_modules/node-sass/scripts/install.js

现在运行NPM start或yarn start

检查你的系统:你的系统是否有两个不同的Node.js安装?

如果通过nodejs安装node,默认安装目录为 C:\Program Files\nodejs 我的节点版本是6。Xx安装在这里。

检查VS External web tools目录 C:\Program Files (x86)\Microsoft Visual Studio\2017\企业\Web\External 我的节点版本是5。Xx安装在那里。

一种解决方法是:

备份C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External目录。 复制C:\Program Files\nodejs目录内容和 粘贴到 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\外部目录。 从解决方案中删除node_modules目录。 重新运行项目。 如果您得到错误消息,请重新运行项目第二次。

如果这样不行的话

从解决方案中删除node_modules目录。

注意:$是命令提示符

$  npm install 
…
$ npm run build:dev

重新运行项目。