我在构建应用程序时遇到问题,因为 node-sass 一直因错误而失败。
缺少绑定 /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node 中的错误 Node Sass 找不到当前环境的绑定:OS X 64 位,节点 0.10.x
我试过跑步
npm rebuild node-sass
它说
二进制很好;退出。
运行 node -v
时,我得到 v6.2.2
这与 sass 错误所说的“节点 0.10.x”不同。我无法弄清楚为什么它会得到错误的版本。我还尝试删除 node_modules 文件夹并运行 npm update 或 npm install,这两者都没有解决问题。有任何想法吗?
nvm
?如果您有时会弄乱一些 npm 模块路径,他们会尝试使用与当前版本不同的版本。如果不是,您可以随时尝试删除 node_modules
文件夹并再次安装依赖项
我有同样的问题
您的 gulpfile 中有错误:错误:缺少绑定 E:\allapp\badshaindiancuisine\node_module\node-sass\vendor\win32-x64-46\binding.node Node Sass 找不到当前环境的绑定:Windows 64 -bit with Node.js 4.x 找到以下环境的绑定: - OS X 64-bit with Node.js 4.x
如何解决问题
通过进入项目文件夹,然后执行命令:
npm rebuild node-sass
对于使用 Visual Studio 的用户:
目前为 VS 2015、2017、2019、2022 工作(通过下面和/或这篇文章的回复)
Task Runner Explorer can't load tasks
对于 VS 2015
转到:工具 > 选项 > 项目和解决方案 > 外部 Web 工具
对于 VS 2017(.3)、VS 2019 和 VS 2022
工具 > 选项 > 项目和解决方案 > Web 包管理 > 外部 Web 工具(每个 @nothrow)
在 VS 2017、2019、2022 中,还需要将 $(PATH) 放在 $(VSINSTALLERDIR)\Web\External 之上
重新排序,使 $(PATH) 高于 $(DevEnvDir)\Extensions\Microsoft\Web Tools\External
https://i.stack.imgur.com/q2Al9.png
删除 node_modules
并运行 npm install
然后 npm rebuild node-sass
什么也没做。
Tools > Options > Projects and Solutions > Web Package Management > External Web Tools
**只需执行:** npm rebuild node-sass --force
删除 node_modules npm install 下的 node-sass 文件夹
就我而言,它也找不到 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
为我工作:
只需删除 node-sass 文件夹并运行 npm install
。
npm rebuild node-sass
对我不起作用。 (带有 WebStorm 的 Mac)
npm rebuild node-sass --force
也不起作用。
我在 Windows 环境中遇到了同样的问题,收到以下错误:
错误:缺少绑定 C:\Development{ProjectName}\node_modules\node-sass\vendor\win32-ia32-47\binding.node Node Sass 找不到当前环境的绑定:Windows 32-bit with Node.js 5 .x 找到以下环境的绑定: - Windows 64 位与 Node.js 6.x
此处其他答案(npm install
、npm rebuild node-sass
等)中列出的 npm
命令均无效。
相反,我必须下载丢失的绑定并将其放在适当的目标文件夹中。
可以在 on 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
我遇到了类似的问题,原因是我的机器上安装了两个版本的 Node:一个是“全局的”,另一个是项目级别的。只有当 Gulp 构建在 Node.js 4.x 版本下运行时,Sass 才会正确构建,因此请确保升级您正在使用的 Node 版本。
PS:如果您完全删除项目中的 node_modules 文件夹并从头开始重新构建,npm 将为您当前的系统和节点版本下载正确的依赖项。
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 将为容器操作系统下载正确的绑定。
请参阅 my repro case 了解更多信息。
npm install
(或不安装)在具有架构相关模块时会出现问题:获取 darwin 或 linux 二进制文件,具体取决于您npm i
它的位置对于像 node-sass
或 @google-cloud/pubsub
这样的 NodeJS 模块会发生
/node_modules
,它被绑定安装到 /app/node_modules
的容器中。即使我的 NODE_PATH
是 /node_modules
(确实存在)并且应该在不同的位置..,它还是随机开始引起问题。我在这两个地方都安装了,以便我的 prettier 开发部门可以与我的 vscode 一起使用。哎呀。奇怪的东西。感谢您对码头工人的提及 <3
在某些情况下,您需要卸载并安装 node-sass 库。尝试:
npm uninstall --save node-sass
和
npm install --save node-sass
看看它对我的工作,Stack link here
* Docker 相关答案在这里 *
回答您是否遇到此问题或类似问题,并且正在使用 Docker。
原因:在将当前文件结构复制到 Docker 容器内部时,您可能会将节点模块从一个操作系统系统复制到另一个系统(例如,从 Mac 到 Linux 容器)。
解决方案:
添加一个 .dockerignore
,并在里面添加:
node_modules
这将导致 npm install
为 docker 环境而不是本地机器环境安装绑定。
node-sass
节点模块使用依赖于节点版本的 darwin
二进制文件。当未下载二进制文件或下载错误的二进制文件时会出现此问题。
[![节点 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 版本与 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/
尝试添加后缀--force
npm rebuild node-sass --force
对于我的特殊情况,上述答案均无效。那么它的工作原理:
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
我有同样的问题
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 install,尝试删除 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
如果您的终端/命令提示符显示:
Node Sass could not find a binding for your current environment: OS X 64-bit with Node 0.10.x
并且您尝试了以下命令,例如:
npm cache clean --force rm -rf node modules npm install npm rebuild node-sass
&仍然没有任何工作..
只需在终端中手动运行它:
node node_modules/node-sass/scripts/install.js
现在运行
npm start or yarn start
我对 Node v7.4.0 Current (Latest Features) 也有同样的问题。
在这里阅读并将 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 `
我是 Windows 8 用户,最近将 Node 更新为 v8.11.1
,将 npm 更新为 v6.0.0
,并遇到了类似的问题。没有任何效果 - npm install -g node-sass@latest
或从项目 node_modules/
中删除 node-sass
目录 - 它们都不适合我。
Laravel Mix 向我的浏览器控制台抛出错误,提示缺少节点:win32-x64-57
。我不知道是因为网络连接速度较慢还是其他原因,更新期间节点丢失了。
因此,一些答案引导我查看 Node-Sass 版本,我找到了解决方案。
第 1 步:使用以下命令检查您的 node-sass 版本:npm view node-sass 版本(第 4 步中的 {your version}) 第 2 步:获取 Node-Sass 版本 第 3 步:获取您的版本并在每个版本下列出的资产,并下载文件第 4 步:进入您的 PC 的 C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\ 并将下载的 .node版本文件夹中的文件
你完成了。
在我的例子中,node-sass 版本是 4.9.0
,缺少的节点是 win32-x64-57_binding.node
,所以我从 4.9.0 release 下载了 .node
文件并执行了第 4 步。
对于 Visual Studio 2015/2017,右键单击您的 package.json
,然后单击还原包。
这将确保运行 Visual Studio Tools External Tools 中的 npm,并且将基于此重建绑定。
我遇到过同样的问题。我在这里找不到任何合适的工作解决方案,所以我找到了我的:
受@Rob-Scott 解决方案和其他指出我们可以安装 2 个 Node.js 版本的启发,我去了 C:\Program Files (x86)\nodejs
并意识到除了 VS 默认安装之外,我还安装了一个 node.js 版本。
我的解决方案很简单:
转到工具 > 选项 > 项目和解决方案 > Web 包管理 > 外部 Web 工具
单击添加条目(右上角按钮块的最左侧)
输入 C:\Program Files (x86)\nodejs,按回车验证
把它放在列表的顶部
享受
可能 Node.js 在 PATH 变量中没有设置好,但这是我的工作非常快速的解决方案,我的 2 美分 :)
当您在工作站中运行 Node.js 更新并且全局使用 node-sass 时,就会发生这种情况。
所以你应该全局卸载 node-sass
npm uninstall -g node-sass
然后你必须再次全局安装它
npm install -g node-sass
如果没有 node-sass 中的 package.json,则不会安装 node-sass 的 post 依赖项
手动运行它为我解决了
node node_modules/node-sass/scripts/install.js
信用:link
运行以下命令,它对我来说很好。
npm install node-sass -g
npm rebuild node-sass
nvm use 10.16.3
node node_modules/node-sass/scripts/install.js
ng serve --poll=2000
这对我有用:yarn add --force node-sass@4.14.1
或 yarn add --force node-sass
这通常是因为运行 npm install
后环境发生了变化。运行 npm rebuild node-sass
为当前环境构建绑定。
在 node_modules/node-sass/vendor/linux-x64-46/ 中创建一个新目录。根据您的版本从 https://github.com/sass/node-sass/releases (linux-x64-59_binding.node) 下载文件。将其粘贴到 node_modules/node-sass/vendor/linux-x64-46/ 重命名为 binding.node
从 VS 2017 Professional 升级到 Enterprise 时我遇到了这个问题
关闭 VS 删除 node_modules 打开 VS 右键单击 package.json 并选择“恢复包”
删除 node_modules 文件夹。再次安装依赖项。 (npm 我)
没有一个安装/重建解决方案为我解决了这个问题(使用 gulp)。
这是我解决它的方法:
1) 从 repository 下载缺少的绑定文件。
2) 重命名文件 binding.node
。
3) 如果目录不存在,则创建 node_modules/node-sass/vendor/darwin-x64-11
(错误消息的路径)目录。
4) 将绑定文件添加到 node_modules/node-sass/vendor/darwin-x64-11
只需刷新您的 npm 缓存并:
npm cache clean --force
npm install
在同样的情况下,它总是对我有用。
UPD:您的问题也可能是由于缺少全局 sasslib。
npm install -g sass
打开 Visual Studio 2017 转到 Tools -> Options... 转到 Projects and Solutions -> Web Package Management 将 $(PATH) 移动到该列表的顶部并关闭该窗口。重新启动 Visual Studio。这在我的情况下有效,因为我的节点版本是 11.x
rebuild node-sass
是不够的。更改路径优先级解决了这个问题。
只需运行评论即可。
npm 重建节点-sass
享受你的编码...
不定期副业成功案例分享
/usr/local/lib/
并重命名了 node-sass 文件夹。然后运行npm install node-sass -g
。那个固定的。我在 Mac 操作系统上v10.7.0
节点萨斯:v3.13.1
。说我当前的环境是节点为 0.10.x 的 32 位窗口,这根本不是真的。node_modules
并运行npm install
而不是重建您的 node-sass。npm rebuild node-sass
后问题仍然存在。但是,npm uninstall node-sass
然后npm install node-sass
为我工作。