我有问题构建一个应用程序,因为node-sass不断失败的错误。
binding /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node出错
Node Sass无法找到当前环境的绑定:OS X 64位的Node 0.10.x
我试过跑步
npm rebuild node-sass
说
二进制很好;退出。
当运行node -v时,我得到v6.2.2
这与sass错误说的“Node 0.10.x”不同。我不明白为什么它会得到错误的版本。我也尝试删除node_modules文件夹并运行npm update或npm install,这两者都没有解决问题。什么好主意吗?
我在本地运行Docker中的一个构建时,使用一个节点alpine映像,很长一段时间都有这个问题。我用下面的代码来创建基础层:
FROM node:19.4-alpine3.17 AS node_base
RUN apk update && \
apk add python3 make && \
rm -rf /var/cache/apk/*
它缺少了一个包:g++。把上面的改为下面的,对我来说很管用:
FROM node:19.4-alpine3.17 AS node_base
RUN apk update && \
apk add python3 make g++ && \
rm -rf /var/cache/apk/*
我相信这与带有M1芯片的macbook PRO的架构有关,在其他机器上我不会遇到这个错误,但我还没有测试过。
就我的具体情况而言,上述答案都不起作用。那么它的工作原理是:
rm -rf node_modules
rm -rf /tmp/*
rm -rf /root/.npm/node-sass
npm uninstall --save node-sass
npm cache clean --force
NPM缓存验证检查缓存中是否没有剩余内容
npm install
虽然我没有试图重现序列,但这是上述工作的组合。
此外,你还可以尝试:
NPM install node-sass或NPM install node-sass -g
npm rebuild node-sass
npm install bindings
node-sass runs an install script to download the required binary. If there are no environment variables, .npmrc variables or process arguments set then the binary is determined by using the current process platform, architecture and Node ABI version. Therefore, if you run node install in one application and then try to run node-sass in an application with a different platform/architecture/ABI, the binary won't have been downloaded. The solution is to manually download the binary or to fix the binary version using an environment variable (SASS_BINARY_NAME) or a .npmrc variable (sass_binary_name)
你可以在node-sass\lib\extensions.js中的getBinaryPath函数中看到这个逻辑
我在Windows环境中遇到了同样的问题,收到以下错误:
C:\Development{ProjectName}\node_modules\node-sass\vendor\win32-ia32-47\binding.node
Node Sass无法找到当前环境的绑定:Windows 32位,带有Node.js 5.x
为以下环境找到绑定:
—Windows 64位,Node.js 6.x
这里其他答案中列出的npm命令(npm install, npm rebuild node-sass等)都不起作用。
相反,我必须下载缺失的绑定,并将其放在适当的目标文件夹中。
可以在git上找到绑定。将该文件与错误消息中/node_modules/node-sass/vendor/后面标识的文件夹名匹配(在您的示例中是'darwin-x64-11',因此您需要darwin-x64-11_binding. xml文件)。节点文件)。
在项目中创建缺少的文件夹(/node_modules/node-sass/vendor/darwin-x64-11),将.node文件复制到新目录,并将其重命名为binding.node。
Node-sass发布URL:
https://github.com/sass/node-sass/releases