Node Sass找不到您当前环境的绑定

我在构建应用程序时遇到问题,因为node-sass不断因错误而失败。

缺少绑定/Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node中的错误
Node Sass找不到当前环境的绑定:OS X节点为0.10.x的64位

我尝试跑步

npm rebuild node-sass

其中说

二进制很好;退出。

运行时node -v我得到v6.2.2

这与sass错误显示“节点0.10.x”不同。我不知道为什么它得到了错误的版本。我还尝试了删除node_modules文件夹并运行npm update或npm install,但这两种方法都无法解决问题。有任何想法吗?

木何鱼2020/03/17 16:36:31

没有一个安装/重建解决方案为我(使用gulp)解决了这个问题。

这是我的解决方法:

1)从资源库下载缺少的绑定文件

2)重命名文件binding.node

3)node_modules/node-sass/vendor/darwin-x64-11如果不存在,请创建(错误消息路径)目录。

4)将绑定文件添加到 node_modules/node-sass/vendor/darwin-x64-11

前端LEYLEY2020/03/17 16:36:31
  1. 删除node_modules文件夹。
  2. 再次安装依赖项。(npm我)
伽罗十三2020/03/17 16:36:31

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

SamItachi阿飞2020/03/17 16:36:30

我遇到过同样的问题。我在这里找不到任何合适的工作解决方案,所以我找到了我的:

受到@ Rob-Scott解决方案的启发,并指出我们可以安装2个版本的Node.js,因此我去C:\Program Files (x86)\nodejs了解到除了VS默认安装之外,我还安装了node.js版本。

我的解决方案很简单:

  • 转到工具>选项>项目和解决方案> Web软件包管理>外部Web工具
  • 单击add an entry(按钮的右上方)
  • 输入C:\Program Files (x86)\nodejs,按确认enter
  • 将其放在列表顶部
  • 请享用

Node.js可能在PATH变量中的设置不正确,但这是我工作的非常快速的解决方案,我的2美分:)

Stafan凯2020/03/17 16:36:30

node-sass运行安装脚本以下载所需的二进制文件。如果没有设置环境变量,.npmrc变量或过程参数,则使用当前的过程平台,体系结构和Node ABI版本确定二进制文件。因此,如果在一个应用程序中运行节点安装,然后尝试在具有不同平台/体系结构/ ABI的应用程序中运行node-sass,则二进制文件将不会下载。解决方案是手动下载二进制文件或使用环境变量(SASS_BINARY_NAME)或.npmrc变量(sass_binary_name)修复二进制版本。

您可以在node-sass \ lib \ extensions.js中的getBinaryPath函数中查看此逻辑

Davaid米亚2020/03/17 16:36:30

从VS 2017 Professional升级到Enterprise时遇到此问题

  1. 关闭VS
  2. 删除node_modules
  3. 打开VS
  4. 右键单击package.json并选择“恢复软件包”
神奇前端Sam2020/03/17 16:36:30

这对我有用node_modules,从IDE中删除然后还原软件包,然后npm rebuild node-sass

猴子达蒙A2020/03/17 16:36:30

创建AspNetCore应用程序时,我在Visual Studio 2015社区版中遇到的类似错误是:

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

找到以下环境的绑定:- 具有Node.js 6.x的Windows 64位

我找到的解决方案是

  • 安装nodejs Windows版本
  • 在外部Web工具中添加节点js(C:\ Program Files \ nodejs)的路径(请参见Rob Scott的答案),
  • 将nodejs路径移至$(PATH)上方。
泡芙老丝Jim2020/03/17 16:36:30

请在根文件夹下写以下命令。

npm重建节点ass

100%有效...

Tony猪猪2020/03/17 16:36:30

这通常是因为自运行以来环境已更改npm install运行npm rebuild node-sass将建立当前环境的绑定。

村村西里Green2020/03/17 16:36:30

没有node-sasspackage.json,不会安装 node-sass post依赖项

手动运行它为我解决了

node node_modules/node-sass/scripts/install.js 

信用:链接

村村小小十三2020/03/17 16:36:29

只需刷新您的npm缓存并:

npm cache clean --force  
npm install

在相同情况下,它总是对我有用。

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

npm install -g sass
和田2020/03/17 16:36:29

在工作站中运行Node.js的更新并且全局使用node-sass时,会发生这种情况。

因此,您应该全局卸载node-sass

npm uninstall -g node-sass

然后必须再次在全局安装

npm install -g node-sass
Mandy神乐2020/03/17 16:36:29

node-sass节点模块使用darwin二进制文件,该文件取决于节点的版本。当不下载二进制文件或下载错误的二进制文件时,会发生此问题。

节点错误

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

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

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

Node JS兼容的node-sass版本

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

西里JinJin2020/03/17 16:36:29

只需运行评论就可以了。

npm重建节点ass

享受您的编码...

阿良小哥2020/03/17 16:36:29

对于Visual Studio 2015/2017,右键单击,package.json然后单击“还原软件包”。

这将确保运行Visual Studio Tools External Tools中的npm,并根据该绑定重新构建绑定。

乐小小2020/03/17 16:36:29

我对Node v7.4.0 Current(最新功能)有相同的问题。

在这里做了一些阅读,并将Node降级到v6.9.4 LTS,并在运行后npm rebuild node-sass下载了二进制文件,一切开始正常工作。

https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node下载二进制文件
。]-:
二进制文件已保存到D:\ xxx \ xxx-xxx \ node_modules \ node-sass \ vendor \ win32-x64-48 \ binding.node将
二进制缓存到C:\ Users \ user \ AppData \ Roaming \ npm-cache \ node-sass \ 3.13.1 \ win32-x64-48_binding.node `

StafanDavaid2020/03/17 16:36:29

我有同样的问题

    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

nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever
伽罗卡卡西猴子2020/03/17 16:36:29

* Docker相关的答案在这里*

回答是否遇到此问题或类似问题,并且正在使用Docker。

原因:将当前文件结构复制到Docker容器内部时,您可能正在将节点模块从一个OS系统复制到另一个OS系统(例如,从Mac到Linux容器)。

解:

添加.dockerignore,然后在内部添加:

node_modules

这将导致npm install为docker环境而非本地计算机环境安装绑定。

GOLEY前端2020/03/17 16:36:28

对于我特定的情况,以上答案均无效。所以它的工作原理是:

rm -rf node_modules 
rm -rf /tmp/* 
rm -rf /root/.npm/node-sass 
npm uninstall --save node-sass 
npm cache clean --force 

npm cache verify 检查缓存中是否没有任何内容

npm install

虽然我还没有尝试重现该序列,但这是上述方法的结合。此外,您也可以尝试:

npm install --save node-sass 要么 npm install node-sass -g

npm rebuild node-sass
npm install bindings
乐米亚2020/03/17 16:36:28

尝试添加后缀--force

npm rebuild node-sass --force
老丝泡芙Pro2020/03/17 16:36:28

在某些情况下,您需要卸载并安装node-sass库。尝试:

npm uninstall --save node-sass

npm install --save node-sass

看看这对我的工作, 这里的链接

Stafan村村达蒙2020/03/17 16:36:28

我有一个类似的问题,原因是我的计算机上安装了两个版本的Node:一个是“全局”版本,另一个是在项目级别。仅当Gulp构建在Node.js 4.x版本下运行时,Sass才能正确构建,因此请确保升级所使用的Node版本。

PS:如果您完全删除了项目中的node_modules文件夹并从头开始重建,npm将为您当前的系统和节点版本下载正确的依赖项。

达蒙小宇宙2020/03/17 16:36:28

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

请参阅我的复制案例以了解更多信息。

樱猿2020/03/17 16:36:28

只需执行: npm rebuild node-sass --force


不得已的解决方案: 如果由于某种原因上述方法无法解决您的问题,请尝试以下操作:

  1. 删除node-sass文件夹node_modules
  2. npm install

就我而言,它也找不到Python

通过以下步骤解决了该问题(Windows):

npm rebuild node-sass --force
-- cannot find python.exe, if you have Python installed, add it to your path:
set PYTHON=C:\Python27\Python.exe
-- else: download python "Windows x86-64-MSI" installer from https://www.python.org/downloads/release/python-2714/
-- install python
-- at installation start check: add env variable to path
-- after successfull installation:
npm rebuild node-sass --force
-- finished successfully
小宇宙斯丁宝儿2020/03/17 16:36:28

为我工作:

只需删除node-sass文件夹并运行即可npm install

Stafan乐2020/03/17 16:36:26

我有同样的问题

gulpfile中存在错误:
错误:缺少绑定E:\ allapp \ badshaindiancuisine \ node_module \ node-sass \ vendor \ win32-x64-46 \ binding.node
节点Sass找不到当前环境的绑定:Windows 64位与Node.js 4.x

找到以下环境的绑定:
    -带有Node.js 4.x的OS X 64位

如何解决我的问题

通过进入项目文件夹,然后执行:

npm rebuild node-sass