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

waz*_*day 445 node.js npm

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

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

我试过跑步

npm rebuild node-sass
Run Code Online (Sandbox Code Playgroud)

这说

二进制很好; 退出.

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

这与sass错误"Node 0.10.x"的内容不同.我无法弄清楚为什么它会得到错误的版本.我还尝试删除node_modules文件夹并运行npm update或npm install,这两个文件都没有解决问题.有任何想法吗?

Bip*_*was 675

我有同样的问题

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

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

如何解决我的问题

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

npm rebuild node-sass
Run Code Online (Sandbox Code Playgroud)

  • 最初工作但仍然有问题.所以,我在finder中使用CMD + SHIFT + G转到`/ usr/local/lib /`并重命名为node-sass文件夹.然后运行`npm install node-sass -g`.固定的.我在Mac OS上 (5认同)
  • 第一步是删除“ node_modules”并运行“ npm install”,而不是重建node-sass。 (5认同)
  • 不起作用。节点:`v10.7.0` node-sass:`v3.13.1`。说我当前的环境是带有节点 0.10.x 的 32 位窗口,这根本不是真的。 (4认同)
  • “npm重建node-sass”后问题仍然存在。但是,“npm uninstall node-sass”然后“npm install node-sass”对我有用。 (3认同)

Rob*_*ott 262

注意我正在使用VS 2015,64位Windows 7.

也适用于VS 2017(来自对此帖的回复)

Task Runner Explorer无法加载任务

对于VS 2015

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

VS 2017(.3)

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

在VS 2017中,您还需要将$(PATH)放在$(VSINSTALLERDIR)\ Web\External之上


  • 重新排序,以便$(PATH)高于$(DevEnvDir)\ Extensions\Microsoft\Web Tools\External

在此输入图像描述


删除node_modules并运行npm install然后npm rebuild node-sass 什么也没做.

  • 可以确认,这仍然是 VS 2019 中的事情。 (17认同)
  • 这也适用于全新安装的VS2017. (12认同)
  • 在VS2017.3中,设置的路径是"工具">"选项">"项目和解决方案">"Web包管理">"外部Web工具" (6认同)
  • 该死!我永远不会想出来...所有用愚蠢的javascript编译愚蠢的节点愚蠢的sass (6认同)
  • 如果您使用的是VS2015,那么您肯定应该进行此答案中描述的更改.您可能需要做的就是解决此问题. (5认同)
  • 这是由问题解决的.@wazzaday我相信这应该是其他人容易找到答案的公认答案. (2认同)
  • 未来好。这仍然是一回事,这个答案解决了它。谢谢! (2认同)
  • 不知道为什么在 VS 中使用 Node 如此困难,有这么多陷阱。在这个问题上花了几个小时;尝试了一切,直到我将路径移到外部工具上方。Task Runner Explorer 中的错误没有表明根本问题。 (2认同)
  • VS2022 中也有这样的情况(至少是预览版 4) (2认同)

Beo*_*ett 131

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

错误:缺少绑定C:\ Development {ProjectName} \node_modules \node-sass\vendor\win32-ia32-47\binding.node
节点Sass找不到当前环境的绑定:Windows 32位与Node.js 5 .x
找到以下环境的绑定:
   - 带有Node.js 6.x的Windows 64位

在没有npm在这里的其他答案(列出的命令npm install,npm rebuild node-sass等)的工作.

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

绑定可以在git上找到.将文件与/node_modules/node-sass/vendor/错误消息中标识的文件夹名称匹配(在您的情况下为'darwin-x64-11',因此您需要该darwin-x64-11_binding.node文件).

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

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

  • 这是我的唯一答案,但在https://github.com/sass/node-sass/releases而不是链接的网址中找到了我的绑定.干杯 (4认同)
  • 也为我工作,谢谢!尝试清理node_modules,删除缓存,rifraf,重建node-sass,从VS2015而不是从命令行使用npm进行重建,最后修复了该问题。 (3认同)
  • 谢谢@Beofett。您的回答使我免于在Windows和Mac OSX中运行Ionic项目。 (2认同)

Cod*_*iee 126

为我工作:

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

  • 这工作了!`npm rebuild node-sass`对我不起作用。(带有WebStorm的Mac) (6认同)
  • 这对我也有用.显然是节点版本冲突.谢谢! (3认同)
  • 这是唯一对我有用的解决方案!npm rebuild node-sass --force也不起作用。 (2认同)

Leg*_*nds 102

只需执行以下命令:

npm rebuild node-sass --force


在我的情况下,它也找不到node-sass.

以下程序解决了问题(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
Run Code Online (Sandbox Code Playgroud)

  • 以上对我有用,尽管它在两个不同文件夹中的两个不同应用程序中发生了两次。python 安装是一次性的(即当我在其他应用程序上第二次出现错误时不需要),我不需要最终的 npm run build 命令(至少不是明确的),但我确实需要运行重建--force 对我的两个应用程序执行两次。 (2认同)

She*_*way 26

固定

npm rebuild node-sass --force

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

docker exec <container-id> npm rebuild node-sass --force

说明

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

根据我的经验,通常会在您node_modules直接添加到Dockerfile中的容器文件系统时(或者使用Docker卷安装它们).这是因为您的容器架构通常与您当前的操作系统不同.例如,我在macOS上安装了node-sass,但我的容器运行的是Ubuntu.

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

请参阅我的repro案例以了解更多信息.


Roc*_*que 23

我遇到了类似的问题,原因是我的机器上安装了两个版本的Node:一个是"global",另一个是项目级别.只有在Gulp构建在Node.js 4.x版本下运行时,Sass才会正确构建,因此请确保升级您正在使用的Node版本.

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


Bal*_*ngh 17

node-sassnode 模块使用darwin依赖于 node 版本的二进制文件。当未下载二进制文件或下载了错误的二进制文件时,会出现此问题。

节点sass错误

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

对于 Mac 用户:

rm -rf node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force
Run Code Online (Sandbox Code Playgroud)

对于 Windows 用户:

rmdir node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force
Run Code Online (Sandbox Code Playgroud)

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

Node JS 兼容 node-sass 版本

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


cor*_*114 16

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

npm uninstall --save node-sass
Run Code Online (Sandbox Code Playgroud)

npm install --save node-sass
Run Code Online (Sandbox Code Playgroud)

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


use*_*355 12

尝试添加后缀--force

npm rebuild node-sass --force
Run Code Online (Sandbox Code Playgroud)


gsa*_*edo 9

我有同样的问题

    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
Run Code Online (Sandbox Code Playgroud)

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

cd your_proyect
rm -rf node_modules
npm install
npm start or gulp or whatever
Run Code Online (Sandbox Code Playgroud)

如果你正在使用nvm做

nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever
Run Code Online (Sandbox Code Playgroud)


Ale*_*rea 9

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

rm -rf node_modules 
rm -rf /tmp/* 
rm -rf /root/.npm/node-sass 
npm uninstall --save node-sass 
npm cache clean --force 
Run Code Online (Sandbox Code Playgroud)

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

npm install
Run Code Online (Sandbox Code Playgroud)

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

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

npm rebuild node-sass
npm install bindings
Run Code Online (Sandbox Code Playgroud)


kra*_*uba 8

我遇到了与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 `


far*_*llw 8

* Docker相关的答案在这里*

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

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

解:

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

node_modules

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


Jac*_*ana 7

如果您的终端/命令提示符显示:

节点 Sass 找不到绑定 
对于您当前的环境: 
带有 Node 0.10.x 的 OS X 64 位

并且您尝试了以下命令,例如:

npm 缓存清理 --force 
rm -rf 节点模块 
安装 
npm 重建 node-sass 
npm 重建 node-sass

&仍然没有任何效果..

只需在终端中手动运行:

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

现在运行

npm start 或 yarn start


小智 5

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

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


May*_*lam 5

我是 Windows 8 用户,最近更新了 Nodev8.11.1和 npmv6.0.0并遇到了类似的问题。没有任何效果 -npm install -g node-sass@latest或者node-sass从项目中删除目录node_modules/- 没有一个对我有用。

Laravel Mix 向我的浏览器控制台抛出错误,提示缺少节点:win32-x64-57. 我不知道是不是因为互联网连接速度较慢还是更新过程中缺少节点。

因此,一些答案指示我查看 Node-Sass 版本,然后我找到了解决方案。

  1. 步骤1:使用命令检查节点SASS版本:npm view node-sass version(在{your version}步骤4)
  2. 第 2 步:获取Node-Sass 版本
  3. 第 3 步:获取您的版本并在每个版本下列出的资产中找到缺失的节点,并下载文件
  4. 第 4 步:进入您的 PCC:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\并将下载的.node文件放入版本文件夹中

你已经完成了。

在我的例子中,node-sass 版本是4.9.0,缺少的节点是win32-x64-57_binding.node,所以我.node4.9.0 版本下载了文件并按照步骤 4。

  • 哇...我们在同事的计算机上被困了整整一个小时才找到这个答案。其他任何方法都不起作用,甚至破坏了整个 node_modules 目录。这完全解决了我们的问题,非常感谢您的帮助。 (2认同)

小智 5

Just run the comment thats it.

npm rebuild node-sass

enjoy your coding...