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

NPM重建node-sass

NVM使用10.16.3

node_modules node-sass /只/节点安装js。

Ng发球——投票=2000

其他回答

在创建AspNetCore应用程序时,我在Visual Studio 2015 Community Edition中遇到了类似的错误:

Node Sass could not find a binding for your current environment: Windows 32-bit with Node.js 5.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
    at module.exports ([..]\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> ([..]\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (module.js:397:26)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> ([..]\node_modules\gulp-sass\index.js:187:21)
    at Module._compile (module.js:397:26)

您可以从上面的错误中看到,原因是nodejs绑定的版本不匹配。

Node Sass无法找到当前环境的绑定: Windows 32位,带有Node.js 5.x 为以下环境找到绑定: —Windows 64位,Node.js 6.x

我找到的解决办法是

安装windows版本的nodejs, 在外部网络工具中添加节点js (C:\Program Files\nodejs)的路径(参见Rob Scott的回答) 将nodejs路径移到$(path)上方。

除了Abdelsalam Megahed的简短回答,其中包含了大部分解决方案……(也就是说,先看他的答案,然后做这件事)

在遵循Abdelsalam建议的四个简短步骤之后,我运行npm run dev并收到以下消息:

Failed to load C:\path\tsconfig.json: Missing baseUrl in compilerOptions

最后一步是编辑tsconfig。在"compilerOptions":下添加"baseURL": ".",像这样:

"compilerOptions": {
    "baseUrl": ".",
    etc etc etc

问题到这里就解决了。

注意:可能需要硬重置CtrlF5页面来查看更改(即使没有恶魔)。

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将下载容器操作系统的正确绑定。

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

我在Windows环境中遇到了同样的问题,收到以下错误:

C:\Development{ProjectName}\node_modules\node-sass\vendor\win32-ia32-47\binding.node Node Sass无法找到当前环境的绑定:Windows 32位,带有Node.js 5.x 为以下环境找到绑定: —Windows 64位,Node.js 6.x

这里其他答案中列出的npm命令(npm install, npm rebuild node-sass等)都不起作用。

相反,我必须下载缺失的绑定,并将其放在适当的目标文件夹中。

可以在git上找到绑定。将该文件与错误消息中/node_modules/node-sass/vendor/后面标识的文件夹名匹配(在您的示例中是'darwin-x64-11',因此您需要darwin-x64-11_binding. xml文件)。节点文件)。

在项目中创建缺少的文件夹(/node_modules/node-sass/vendor/darwin-x64-11),将.node文件复制到新目录,并将其重命名为binding.node。

Node-sass发布URL: https://github.com/sass/node-sass/releases

试着加上后缀——force

npm rebuild node-sass --force