我有问题构建一个应用程序,因为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缓存:

npm cache clean --force  
npm install

在同样的情况下,它总是适用于我。

UPD:您的问题也可能是由于缺少全局sasslib。

npm install -g sass

其他回答

我也有同样的问题

    throw new Error(errors.missingBinary());
    ^

Error: Missing binding /path/to/project/node_modules/node-sass/vendor/linux-x64-47/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 5.x

Found bindings for the following environments:
  - Linux 64-bit with Node 0.10.x
  - Linux 64-bit with Node.js 5.x

这是因为我用不同的nodejs版本安装了npm, 尝试删除node_modules文件夹安装和启动

cd your_project
rm -rf node_modules
npm install
npm start or gulp or whatever

如果你正在使用nvm do

nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever

对于使用Visual Studio的用户:

目前正在为VS 2015, 2017, 2019, 2022工作(通过下面和/或这篇文章的回复)

任务运行器资源管理器无法加载任务

VS 2015

转到:工具>选项>项目和解决方案>外部Web工具

VS 2017(.3), VS 2019和VS 2022

>选项>项目和解决方案> Web包管理>外部Web工具(每个@nothrow)

在VS 2017, 2019, 2022,你还需要把$(PATH)放在$(VSINSTALLERDIR)\Web\External上面


重新排序,使$(PATH)在$(DevEnvDir)\Extensions\Microsoft\Web Tools\External之上


删除node_modules并运行npm install和npm rebuild node-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,问题就消失了。但我不知道背后的魔力是什么。