我有问题构建一个应用程序,因为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重建node-sass——force

或者,如果你在容器中使用node-sass:

Docker exec <container-id> NPM rebuild node-sass——force

当node-sass没有当前操作系统的正确绑定时,会发生此错误。

如果你使用Docker,当你将node_modules直接添加到Dockerfile中的容器文件系统(或使用Docker卷挂载它们)时,通常会发生这种错误。

容器体系结构可能与当前的操作系统不同。例如,我在macOS上安装node-sass,但我的容器运行Ubuntu。

如果强制node-sass从容器内部重新构建,node-sass将下载容器操作系统的正确绑定。

查看我的复制案例了解更多。

其他回答

node-sass节点模块使用依赖于节点版本的达尔文二进制文件。没有下载二进制文件或下载了错误的二进制文件时,会出现此问题。

[![节点sass错误][1]][1].

重新安装节点模块将下载node-sass的二进制文件:-

Mac用户:

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

Windows用户:

rmdir node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

但是对于某些用户,您需要检查您的节点版本与node-sass版本的兼容性。使用下面的表使其兼容,并再次运行以上命令来修复此问题。

这是node-sass的节点兼容性表

NodeJS | Supported node-sass version | Node Module
Node 17     7.0+                        102
Node 16     6.0+                        93
Node 15     5.0+                        88
Node 14     4.14+                       83
Node 13     4.13+, <5.0                 79
Node 12     4.12+                       72
Node 11     4.10+, <5.0                 67
Node 10     4.9+, <6.0                  64
Node 8      4.5.3+, <5.0                57
Node <8     <5.0                        <57

如果问题仍未解决,请检查node-sass支持的环境列表:—https://github.com/sass/node-sass/releases/

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

.node-version .nvmrc

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

Open Visual Studio 2017 进入工具->选项… 进入项目和解决方案-> Web包管理 移动$(PATH)到列表的顶部并关闭该窗口。 重新启动Visual Studio。 这在我的例子中是可行的,因为我的节点版本是11.x

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

如果你在mac上安装Xcode。