节点Sass找不到当前环境的绑定

我在构build应用程序时遇到了问题,因为节点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 

这说

二进制是好的; 退出。

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

这与sass错误所说的“节点0.10.x”不同。 我不知道为什么它得到错误的版本。 我也尝试删除node_modules文件夹并运行npm更新或npm安装,这两个都没有解决问题。 有任何想法吗?

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

也适用于VS 2017(从回复到这个职位)

任务运行程序资源pipe理器无法加载任务

对于VS 2015

  • 转到:工具>选项>项目和解决scheme>外部Web工具

对于VS 2017(.3)

  • 工具>选项>项目和解决scheme> Web包pipe理>外部Web工具(per @ nothrow)

  • 重新sorting,使$(PATH)高于$(DevEnvDir)\ Extensions \ Microsoft \ Web Tools \ External

在这里输入图像说明


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

我有同样的问题

您的gulp文件中有错误:
错误:缺less绑定E:\ allapp \ badshaindiancuisine \ node_module \ node-sass \ vendor \ win32-x64-46 \ binding.node
节点Sass无法为您的当前环境find绑定:使用Node.js 4.x的Windows 64位

find以下环境的绑定:
– 带有Node.js 4.x的OS X 64位

如何解决我的问题

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

 npm rebuild node-sass 

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

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

其他答案中列出的npm命令( npm installnpm rebuild node-sass等)都没有工作。

相反,我不得不下载缺less的绑定并将其放置在适当的目标文件夹中。

绑定可以在git上find。 使用/node_modules/node-sass/vendor/在你的错误信息(在你的情况下是'darwin-x64-11',所以你想要darwin-x64-11_binding.node文件) darwin-x64-11_binding.node文件夹名称。

在项目中创build丢失的文件夹( /node_modules/node-sass/vendor/darwin-x64-11 ),将.node文件复制到新目录,并将其重命名为binding.node

为我工作:

只要删除node-saas文件夹并运行npm install

我有与节点v7.4.0当前(最新function)相同的问题。

在这里读了一些,并将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
将二进制文件caching到C:\ Users \ user \ AppData \ Roaming \ npm-cache \ node-sass \ 3.13.1 \ win32-x64-48_binding.node

我有一个类似的问题,原因是有两个版本的节点安装在我的机器:一个“全球”和另一个在项目级别。 只有Gulp版本在Node.js 4.x版本下运行,Sass才能正确构build,因此请确保升级您正在使用的节点版本。

PS:如果您完全删除项目中的node_modules文件夹并重新构build,则npm将下载当前系统和节点版本的正确依赖关系。

我有同样的问题

  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文件夹并启动

 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 

这通常是因为运行npm install环境发生了变化。 运行npm rebuild node-sass为当前环境构build绑定。

我在创buildAspNetCore应用程序时遇到的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绑定的版本不匹配。

节点Sass找不到当前环境的绑定: Windows 32位,Node.js 5.x

find以下环境的绑定: – 带有Node.js 6.x的Windows 64位

我find的解决办法是

  • 安装nodejs windows版本 ,
  • 在外部Web工具中添加节点js(C:\ Program Files \ nodejs)的path(请参阅Rob Scott的答案),
  • 在$(PATH)上移动nodejspath。

这对我node_modules删除node_modules ,然后从IDE恢复包,然后npm rebuild node-sass

对于Visual Studio 2015/2017,右键单击您的package.json并单击还原包。

这将确保Visual Studio Tools External Tools中的npm运行,绑定将根据此重build。

我只是运行npm重build,而不是npm重buildnode-sass,问题没有了。我不知道什么是背后的魔法。

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

你可以在node-sass \ lib \ extensions.js的getBinaryPath函数中看到这个逻辑

检查你的系统。 你的系统有2个不同的notejs安装吗?
如果您从nodejs站点的默认安装目录安装节点
 C:\ Program Files \ nodejs
 我在这里安装了6.xx版本的节点

检查你的VS外部networking工具目录
 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Web \ External
我在那里安装了节点版本5.xx。
一个解决办法是
进行C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Web \ External目录的备份。
复制C:\ Program Files \ nodejs目录内容并粘贴到 
 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Web \ External

目录。
从您的解决scheme中删除node_modules目录。

重新运行该项目。
如果您收到错误消息,请重新运行项目第二次。


如果这不起作用
 - 从您的解决scheme中删除node_modules目录。
注意:$是命令提示符
 $ npm安装 
 ...
 $ npm run build:dev
重新运行该项目。

还请记住将xxx.node文件(在我的情况下是win32-x64-51)重命名为binding.node并粘贴到xxx文件夹(在我的情况下是win32-x64-51),

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

 npm uninstall --save node-sass 

 npm install --save node-sass 

看看这个工作对我来说, Stack

对于系统节点切换到nvm的用户,如果你还没有删除~/.npm~/.node-gyp ~/.npm文件夹,可能会出现这个问题,因为~/.node-gyp ~/.npm的节点版本可能不同。

在任何情况下,这些文件夹应该被删除。

去掉

“dependencies”:{“node-sass”:“^ 3.13.1”//版本可能与你的情况有所不同},

从你的package.json