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


当前回答

如果你读到这篇文章的结尾,但仍然没有工作。这可能有点傻,但试着验证一下你的文件夹中是否有以下文件:

.node-version .nvmrc

他们是事情不适合你的罪魁祸首。用节点版本更新文件,然后重新运行此线程中其他人提供的过程。它会起作用的。;)

其他回答

就我的具体情况而言,上述答案都不起作用。那么它的工作原理是:

rm -rf node_modules 
rm -rf /tmp/* 
rm -rf /root/.npm/node-sass 
npm uninstall --save node-sass 
npm cache clean --force 

NPM缓存验证检查缓存中是否没有剩余内容

npm install

虽然我没有试图重现序列,但这是上述工作的组合。 此外,你还可以尝试:

NPM install node-sass或NPM install node-sass -g

npm rebuild node-sass
npm install bindings

对于那些从系统节点切换到nvm的用户,如果您还没有删除~/。NPM和~/。node-gyp文件夹可能会出现此问题,因为可能节点版本在~/。Node-gyp可能不同。

在任何情况下,这些文件夹都应该删除。

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

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

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

请在根文件夹上写下以下命令。

NPM重建node-sass

100%的作品……

在我的例子中,我在package-lock中发现了node-sass版本。Json与package.json中的node-sass版本不同。这一步解决了我的问题。

删除文件夹node-modules 删除package-lock.json 安装python 2.7 将C:/Python27;C:/Python27/Scripts添加到环境变量->路径 在Powershell中,以管理员身份执行-> npm install -g node-gyp 在我的工作文件夹-> NPM安装

希望这也适用于你