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


当前回答

在构建docker映像并试图在本地运行时,我遇到了同样的问题。你需要添加一个.dockerignore文件,内容如下: .DS_Store . .gitignore .idea 日志/ * 目标 tmp node_modules 客户端/ node_modules 规范/内部/公共资产 公共/资产

其他回答

我在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

我也有同样的问题

    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

只需刷新你的npm缓存:

npm cache clean --force  
npm install

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

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

npm install -g sass

当我试图在MacOS上的docker中使用node-sass时,我得到了这个错误,这里的解决方案都不起作用。

发生错误是因为我在试图构建docker镜像之前进行了npm安装。npm安装正确地将node-sass的MacOS版本拉到我的node_modules中,然后我将node_modules复制到运行Linux的docker镜像中。这个失败是因为它不能在Linux上运行node-sass的MacOS版本。

在我的情况下,解决方案是在npm安装步骤后添加这个到我的makefile:

docker-compose run --rm --entrypoint "bash -c" mydockerimage "npm rebuild node-sass"

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