我有问题构建一个应用程序,因为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,这两者都没有解决问题。什么好主意吗?
**只需执行:** npm rebuild node-sass——force
If the above for some reason didn't work out for you, try this:
删除“node_modules”下的“node-sass”文件夹
npm安装
在我的例子中,它也找不到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
NPM重建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将下载容器操作系统的正确绑定。
查看我的复制案例了解更多。
我能解决的问题
NPM install -global -production windows-build-tools
NPM install——msvs_version=2015
" devDependencies ": {
:“babel-core ^ 6.26.0”,
:“babel-loader ^ 7.1.4”,
:“babel-plugin-transform-decorators-legacy ^ 1.3.5”,
:“babel-preset-env ^ 1.6.1”,
:“babel-preset-react ^ 6.24.1”,
:“babel-preset-stage-2 ^ 6.24.1”,
:“css-loader ^ 0.28.11”,
:“mini-css-extract-plugin ^ 0.4.0”,
:“node-sass ^ 4.11.0”,
:“sass-loader ^ 6.0.7”,
4.4.1“webpack”:“^”,
:“webpack-cli 3.1.0”,
:“webpack-dev-server ^ 3.1.1”
}
我在本地运行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的架构有关,在其他机器上我不会遇到这个错误,但我还没有测试过。