Node Sass could not find a binding for your current environment
我在构建一个应用程序时遇到问题,因为节点sass总是出错。
ERROR in Missing binding /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node 0.10.x
我试过跑步
1 | npm rebuild node-sass |
哪说
Binary is fine; exiting.
运行
这与sass错误所说的"node 0.10.x"不同。我不明白为什么它得到了错误的版本。我还尝试删除node_modules文件夹并运行npm update或npm install,但这两种方法都没有解决问题。有什么想法吗?
我也有同样的问题
There is an error in your gulpfile:
Error: Missing binding E:\allapp\badshaindiancuisine
ode_module
ode-sass\vendor\win32-x64-46\binding.node
Node Sass could not find a binding for your current environment:Windows 64-bit with Node.js 4.xFound bindings for the following environment:
- OS X 64-bit with Node.js 4.x
如何解决我的问题
进入项目文件夹,然后执行:
1 | npm rebuild node-sass |
注意,我使用的是vs 2015 64位Windows7。
也适用于vs 2017(回复本帖)
任务运行程序资源管理器无法加载任务
对于VS 2015
- 转到:工具>选项>项目和解决方案>外部Web工具
对于VS 2017(3)
- 工具>选项>项目和解决方案>Web包管理>外部Web工具(per@nothrow)
In VS 2017, you also need to put $(PATH) above $(VSINSTALLERDIR)\Web\External
- 重新排序,使$(path)高于$(devenvdir)extensionsmicrosoftweb toolsexternal
删除
我在Windows环境中遇到同样的问题,收到以下错误:
Error: Missing binding C:\Development{ProjectName}
ode_modules
ode-sass\vendor\win32-ia32-47\binding.node
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
此处其他答案(
相反,我必须下载丢失的绑定并将其放在适当的目标文件夹中。
绑定可以在Git上找到。将文件与错误消息中
在项目中创建丢失的文件夹(
节点sass发布URL:https://github.com/sass/node-sass/releases/发布
为我工作:
只需删除node sass文件夹并运行npm安装。nbsp;
只需执行以下命令:
在我的情况下,它也找不到
以下过程解决了该问题(Windows):
1 2 3 4 5 6 7 8 9 | 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 |
我有一个类似的问题,原因是我的机器中安装了两个版本的节点:一个是"全局"的,另一个是项目级的。只有当gulp构建在node.js 4.x版本下运行时,SASS才能正确构建,因此请确保升级所使用的节点版本。
PS:如果完全删除项目中的node_modules文件夹并从头开始重新构建,NPM将下载当前系统和节点版本的正确依赖项。
固定
或者,如果在容器中使用节点sas:
当节点sass没有当前操作系统的正确绑定时,会发生此错误。
根据我的经验,通常在直接将
如果强制节点sas从容器中重新生成,则节点sas将下载容器操作系统的正确绑定。
看我的重复案例了解更多。
在某些情况下,您需要卸载和安装节点sass库。尝试:
1 | npm uninstall --save node-sass |
和
1 | npm install --save node-sass |
看看这对我来说是有用的,这里的堆栈链接
尝试添加后缀--force
1 | npm rebuild node-sass --force |
我在7.4.0版的node current(最新功能)中也遇到了同样的问题。
在这里读了一些东西,把节点降到了V6.9.4LTS,在运行
Downloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node
Download complete .] - :
Binary saved to D:\xxx\xxx-xxx
ode_modules
ode-sass\vendor\win32-x64-48\binding.node
Caching binary to C:\Users\user\AppData
oaming
pm-cache
ode-sass\3.13.1\win32-x64-48_binding.node`
我也有同样的问题
1 2 3 4 5 6 7 8 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 |
那是因为我用不同的nodejs版本安装了npm,尝试删除node_modules文件夹安装和启动
1 2 3 4 | cd your_proyect rm -rf node_modules npm install npm start or gulp or whatever |
如果您正在使用NVM,请执行
1 2 3 4 | nvm use stable // or your favorite version // remove node_module directory npm install npm start or gulp or whatever |
对于我的特殊情况,上述答案都不起作用。所以它的作用是:
1 2 3 4 5 | rm -rf node_modules rm -rf /tmp/* rm -rf /root/.npm/node-sass npm uninstall --save node-sass npm cache clean --force |
1 | npm install |
尽管我没有尝试复制这个序列,但这是上面的组合。此外,您还可以尝试:
1 2 | npm rebuild node-sass npm install bindings |
对于Visual Studio 2015/2017,右键单击您的
这将确保运行来自Visual Studio工具外部工具的NPM,并在此基础上重新生成绑定。
这通常是因为运行
只需刷新您的NPM缓存,然后:
1 2 | npm cache clean --force npm install |
在同样的情况下,它总是适用于我。
upd:你的问题也可能是因为没有一个全球性的sasslib。
1 | npm install -g sass |
如果您看到这个问题或类似的问题,并且正在使用Docker,请回答。
原因:在将当前文件结构复制到Docker容器内部时,您可能正在将节点模块从一个操作系统复制到另一个操作系统(例如,Mac到Linux容器)。
解决方案:
添加一个
这将导致
我是一个windows 8用户,最近更新了node到
LaravelMix向我的浏览器控制台抛出了一个错误,说一个丢失的节点:
因此,一些答案指导我查看节点sass版本,我找到了解决方案。
oaming
pm-cache
ode-sass\{your version}\
你就完了。
在我的例子中,节点sass版本是
创建aspnetcore应用程序时,我在Visual Studio 2015 Community Edition中遇到的类似错误是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 ([..] ode_modules ode-sass\lib\binding.js:15:13) at Object. ([..] ode_modules ode-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. ([..] ode_modules\gulp-sass\index.js:187:21) at Module._compile (module.js:397:26) |
从上面的错误可以看出,原因是nodejs绑定的版本不匹配。
Node Sass could not find a binding for your current environment:
Windows 32-bit with Node.js 5.xFound bindings for the following environments:
- Windows 64-bit with Node.js 6.x
我找到的解决办法是
- 安装Nodejs Windows版本,
- 在外部Web工具中添加节点js(c:program filesodejs)的路径(请参阅rob scott的答案)。
- 将nodejs路径移动到$(path)上方。
当您在工作站中运行node.js的更新并全局使用node sas时,就会发生这种情况。
所以应该全局卸载节点sas
1 | npm uninstall -g node-sass |
然后你必须在全球范围内安装它。
1 | npm install -g node-sass |
这对我有用删除
我也有同样的问题。我在这里找不到任何合适的工作解决方案,所以我找到了我的:
受@rob scott解决方案和其他指出我们可以安装2个版本的node.js的启发,我去了
odejs
我的解决方案很简单:
- 转到工具>选项>项目和解决方案>Web包管理>外部Web工具
- 点击
add an entry (按钮块右上角最左边) - 输入
C:\Program Files (x86) ,按
odejsenter 确认 - 把它放在名单的最上面
- 享受
可能node.js在path变量中设置得不好,但这是我的快速解决方案,我的2美分:)
没有安装/重建解决方案为我解决了这个问题(使用gulp)。
以下是我解决问题的方法:
1)从存储库中下载丢失的绑定文件。
2)重命名文件
3)如果不存在,创建
4)将绑定文件添加到EDOCX1[4]
在构建Docker映像并尝试在本地运行时,我遇到了同样的问题。您需要添加一个.dockerignore文件,其中包含以下内容:
.DS_Store
.git
.gitignore
.idea
log/*
target
tmp
node_modules
client/node_modules
spec/internal/public/assets
public/assets
我在从vs 2017专业版升级到企业版时遇到了这个问题
我必须先选择新的默认节点版本
节点sass运行安装脚本以下载所需的二进制文件。如果没有设置环境变量、NPMRC变量或流程参数,则使用当前流程平台、体系结构和节点ABI版本来确定二进制文件。因此,如果您在一个应用程序中运行node install,然后尝试在具有不同平台/体系结构/abi的应用程序中运行node sass,则不会下载二进制文件。解决方案是手动下载二进制文件或使用环境变量(sass_binary_name)或.npmrc变量(sass_binary_name)修复二进制文件版本。
您可以在node sasslibextensions.js的getbinarypath函数中看到此逻辑。
我只是运行npm rebuild而不是npm rebuild node sass,问题消失了。但我不知道背后的魔力是什么。
我通过将java_home从x86改为x64来解决这个问题。Maven正在x86上运行,但节点使用的是x64。删除/node和/node_模块,然后重新构建。
检查您的系统:您的系统是否有2个不同的
如果从nodejs安装节点,则默认安装目录为
odejs
检查vs外部Web工具目录
一个解决办法是:
- 备份
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External 目录。 - 复制
C:\Program Files 目录内容和
odejs - 粘贴成
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External 目录。 - 从解决方案中删除
node_modules 目录。 - 重新运行项目。如果收到错误消息,请再次运行该项目。
如果不行的话
- 从解决方案中删除
node_modules 目录。
注意:$是命令提示
1 2 3 | $ npm install … $ npm run build:dev |
重新运行项目。
请记住将xxx.node文件(在我的例子中是win32-x64-51)重命名为binding.node并粘贴到xxx文件夹(在我的例子中是win32-x64-51)。
对我来说,问题是任务运行者资源管理器的目标是我的项目的解决方案。当我使用任务运行程序资源管理器刷新按钮旁边的下拉列表更改到项目本身时,它显示了相关的任务。
对于从系统节点切换到NVM的用户,如果没有删除
在任何情况下,都应该删除这些文件夹。
回答@core114,建议卸载和安装
部署前使用
RIMRAF节点模块
更新npm
对于下一个部署,它将自动刷新所有环境的SAS。
打开Visual Studio 2017转到"工具"->"选项"…转到项目和解决方案->Web包管理将$(path)移动到该列表的顶部并关闭该窗口。重新启动Visual Studio。这在我的案例中有效,因为我的节点版本是11.x
我已经尝试了所有我发现的方法。
我注意到那个文件夹有一些奇怪的行为。当我试图从vs终端"cd"到"node-sass"文件夹时,它告诉我"找不到文件夹",但在finder中看到。
即使使用"sudo"命令,vs终端的chmod也找不到文件夹。
我已经从本地的MacOS终端进行了chmod ed,然后用node重新构建。
对我来说,是MavenWar插件将过滤器应用于文件并损坏了woff文件。
1 2 3 4 5 6 7 8 9 10 | <plugin> maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>dist</directory> <filtering>true</filtering> </resource> </webResources> </configuration> |
删除
或者如果你需要过滤,你可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <plugin> maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>dist</directory> <excludes> <exclude>assets/**/*</exclude> </excludes> <filtering>true</filtering> </resource> <resource> <directory>dist</directory> <includes> <include>assets/**/*</include> </includes> </resource> </webResources> </configuration> </plugin> |
对于我来说,当我运行npm install时,它审核了安装的包并显示"发现1个高严重性漏洞",并通过运行
1 | npm audit fix |
做了这个把戏。如果它帮助了某人,则发布。
更新:共享我的错误日志:
1 2 3 4 5 6 7 8 9 10 11 12 | ERROR in ./src/styles.scss (./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js??ref--14-3!./src/styles.scss) Module build failed (from ./node_modules/sass-loader/lib/loader.js): Error: Missing binding .. ode_modules ode-sass\vendor\win32-x64-57\binding.node Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 8.x Found bindings for the following environments: - Windows 64-bit with Node.js 10.x This usually happens because your environment has changed since running `npm install`. .... |
它确实要求我
1 | Run `npm rebuild node-sass` to download the binding for your current environment. |
Mac:
那是固定的。