我在构建应用程序时遇到问题,因为node-sass因错误而失败 .
错误绑定中的错误/Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node Node Sass找不到当前环境的绑定:操作系统X 64位,节点0.10.x
我试过跑步
npm rebuild node-sass
这说
二进制很好;退出 .
运行 node -v
时,我得到v6.2.2
这与sass错误“Node 0.10.x”的内容不同 . 我无法弄清楚为什么它会得到错误的版本 . 我还尝试删除node_modules文件夹并运行npm update或npm install,这两个文件都没有解决问题 . 有任何想法吗?
30 回答
我在Node v7.4.0 Current(最新功能)上遇到了同样的问题 .
有人在这里阅读并将Node降级到v6.9.4 LTS并在运行
npm rebuild node-sass
之后下载了二进制文件,一切都开始工作了 .我只是运行npm rebuild而不是npm rebuild node-sass并且问题已经消失了......我不知道背后的魔力是什么 .
我遇到了类似的问题,原因是我的机器上安装了两个版本的Node:一个是“global”,另一个是项目级别 . 只有在Gulp构建在Node.js 4.x版本下运行时,Sass才会正确构建,因此请确保升级您正在使用的Node版本 .
PS:如果您完全删除项目中的 node_modules 文件夹并从头开始重新构建,npm将下载正确的您当前系统和节点版本的依赖项 .
我必须先选择新的默认节点版本
nvm use ***
或nvm install ***
,然后再删除项目中的所有node_modules和npm i
.我在Windows环境中遇到同样的问题,收到以下错误:
此处的其他答案(
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发布网址:https://github.com/sass/node-sass/releases
node-sass运行安装脚本以下载所需的二进制文件 . 如果没有环境变量,.npmrc变量或进程参数集,则使用当前进程平台,体系结构和Node ABI版本确定二进制文件 . 因此,如果在一个应用程序中运行节点安装,然后尝试在具有不同平台/体系结构/ ABI的应用程序中运行node-sass,则不会下载二进制文件 . 解决方案是手动下载二进制文件或使用环境变量(SASS_BINARY_NAME)或.npmrc变量(sass_binary_name)修复二进制版本
您可以在node-sass \ lib \ extensions.js中的getBinaryPath函数中看到此逻辑
还要记得将xxx.node文件(在我的情况下为win32-x64-51)重命名为binding.node并粘贴到xxx文件夹中(在我的情况下为win32-x64-51),
尝试添加后缀--force
对于从系统节点切换到nvm的人,如果您没有删除
~/.npm
和~/.node-gyp
文件夹,则可能会出现此问题,因为~/.node-gyp
中的节点版本可能不同 .在任何情况下,应删除这些文件夹 .
执行
npm rebuild node-sass --force
,这应该可以解决问题 .在我的情况下,它也找不到
Python
.Following procedure solved the issue (Windows):
修复
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将为容器操作系统下载正确的绑定 .
请参阅my repro case了解更多信息 .
对于我的特殊情况,上述答案都没有奏效 . 它的作用是什么:
npm cache verify
检查缓存中是否有任何内容尽管如此,我还没有尝试重现序列,它是上述组合的工作原理 . 此外,您还可以尝试:
npm install --save node-sass
或npm install node-sass -g
我遇到过同样的问题 . 我在这里找不到合适的工作方案,所以我找到了我的:
受@ 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美分:)
对我来说,maven-war-plugin将过滤器应用于文件并破坏了woff文件 .
删除<filtering> true </ filtering>
或者,如果您需要过滤,您可以执行以下操作:
对我来说问题是Task Runner Explorer的目标是我的项目的解决方案 . 当我使用下拉列表更改为项目本身时,在Task Runner Explorer刷新按钮旁边,它显示了相关任务 .
当您在工作站中运行Node.js更新并且全局使用node-sass时会发生这种情况 .
所以你应该全局卸载node-sass
然后你必须再次全局安装它
我在创建AspNetCore应用程序时遇到的类似错误是Visual Studio 2015社区版:
您可以从上面的错误中看到原因是来自nodejs绑定的版本不匹配 .
我发现的解决方案是
安装nodejs windows version,
在外部Web工具中添加节点js的路径(C:\ Program Files \ nodejs)(参见Rob Scott的回答),
将nodejs路径移到$(PATH)上方 .
这通常是因为自运行
npm install
后环境发生了变化 . 运行npm rebuild node-sass
为当前环境构建绑定 .从VS 2017 Professional升级到Enterprise时遇到此问题
关闭VS.
删除node_modules
打开VS.
右键单击package.json并选择'restore packages'
对于Visual Studio 2015/2017,右键单击
package.json
并单击“还原包” .这将确保运行Visual Studio Tools外部工具中的npm,并基于此重建绑定 .
我是Windows 8用户,最近更新了Node到
v8.11.1
和npm到v6.0.0
并遇到了类似的问题 . 没有任何工作 -npm install -g node-sass@latest
或从项目中删除node-sass
目录node_modules/
- 没有一个为我工作 .Laravel Mix向我的浏览器控制台抛出一个错误,说错过了一个节点:
win32-x64-57
. 我不喜欢't know whether it',因为互联网连接速度较慢,更新期间节点丢失了 .因此,一些答案指示我查看Node-Sass版本,我找到了解决方案 .
Step 1: 使用以下命令检查node-sass版本:
npm view node-sass version
(步骤4中的{your version}
)Step 2: 获取Node-Sass Releases
Step 3: 获取您的版本并在每个版本下列出的资产中找到缺少的节点,并下载该文件
Step 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步 .在构建docker镜像并尝试在本地运行时,我遇到了同样的问题 . 您需要添加.dockerignore文件,其中包含以下内容:
.DS_Store .git .gitignore .idea log/* target tmp node_modules client/node_modules spec/internal/public/assets public/assets
在某些情况下,您需要卸载并安装node-sass库 . 尝试:
和
看看这对我的工作,Stack link here
I had the same problem
How to solve my problem
进入项目文件夹直到node-sass文件夹的位置,然后执行:
我有同样的问题
那是因为我做了npm使用不同的nodejs版本安装,尝试删除node_modules文件夹安装和启动
如果你正在使用nvm做
为我工作:
只需删除
node-sass
文件夹并运行npm install
即可 .回答@ core114建议再次卸载和安装
sass
包适用于手动过程但是对于 automated deployment/CI/CD 你需要更通用的方法 . 对我来说有用的是Continuos部署不同的环境是:rimraf
删除旧的node_modules
rimraf node_modules
package.json
中更新sass
包并提交源代码管理 .对于下一次部署,它将自动刷新所有环境的sass .
检查您的系统:您的系统是否有2个不同的
Node.js
安装?如果从nodejs安装节点,则默认安装目录为
C:\Program Files\nodejs
我在此处安装了节点版本6.xx .检查您的VS外部Web工具目录
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
目录中 .从解决方案中删除
node_modules
目录 .重新运行项目 . 如果收到错误消息,请重新运行该项目 .
如果这不起作用
node_modules
目录 .注意:$是命令提示符
重新运行该项目 .
注意我使用的是VS 2015,64位Windows 7 .
Also works for VS 2017 (from replies to this post)
Task Runner Explorer can't load tasks
For VS 2015
For VS 2017(.3)
删除
node_modules
并运行npm install
然后npm rebuild node-sass
did nothing .这对我有用,删除
node_modules
,然后从IDE恢复包,然后npm rebuild node-sass