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


当前回答

我必须首先选择新的默认节点版本nvm use ***或nvm install ***,然后再次删除项目和npm I中的node_modules中的所有内容。

其他回答

我已经尝试了所有我能找到的方法。

我注意到那个文件夹有一些奇怪的行为。当我试图从VS终端“cd”到“node_sass”文件夹时,它告诉“文件夹未找到”,但在Finder中看到。

chmod从VS终端找不到文件夹,即使有'sudo'命令。

我已经从本地MacOs终端chmod-ed,刚刚与节点重建。

我尝试了上面所有的方法,没有任何效果,我试图将节点版本匹配到node-sass版本,当我决定去node.js官方网站,下载最新的节点版本(目前是v14,我在v12)并安装它。这终于解决了我的问题!你的node-sass版本可能比node.js版本超前。

删除“node_modules”文件夹。 重新安装依赖项。(npm)

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

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

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

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