node-sass安装报错、node版本不兼容:npm install --ignore-scripts、NODE_OPTIONS=--openssl-legacy-provider npm run serve
node-sass安装依赖、启动报错问题
# 1. 安装依赖(跳过构建脚本)
npm install --ignore-scripts
# 2. 替换 sass
npm uninstall node-sass && npm install sass --save-dev
# 3. 启动项目(使用临时的 NODE_OPTIONS)
修改脚本文件:
"serve": "NODE_OPTIONS=\"--openssl-legacy-provider\" vue-cli-service serve --open --port 16903 --hot",
NODE_OPTIONS=--openssl-legacy-provider npm run serve
或者,如果你不想修改 package.json,可以直接使用:
NODE_OPTIONS=--openssl-legacy-provider npm run serve
注意事项:
1. Node.js 版本:项目使用的是较老的 Vue 2 生态,建议使用 Node.js 14-16
版本以避免兼容性问题
2. 端口配置:项目默认配置在端口 16903 上
3. 热重载:项目中已经启用了 --hot 选项,支持热重载
这些额外操作主要是因为项目技术栈较老(Vue 2 + Vue CLI 4),与新版本的
Node.js 和 Apple M1 芯片存在兼容性问题。
npm install --ignore-scripts 的作用非常简单:
✅ 它会安装依赖,但完全跳过所有生命周期脚本的执行
也就是说,以下脚本都不会执行:
-
preinstall -
install -
postinstall -
prepare -
prepublish -
prepack
包括许多包常见的自动构建脚本,例如:
-
node-sass下载 binding 的脚本(你之前的错误就是这个) -
esbuild自动下载二进制 -
husky自动创建.husky目录 -
sharp下载编译依赖 -
corepackprepare 脚本
什么时候用?
通常在两种场景:
1. 避免执行有问题的 install 脚本(如 node-sass 下载失败)
例如你遇到的错误:node-sass 会在 install 阶段下载二进制,如果网络不通或镜像错误,就会失败。
使用:
可以先成功装依赖(但是 node-sass 不能正常使用)。
2. 你想在 CI 或某些环境里不执行 prepare/husky 等脚本
比如 Docker 构建时不希望执行 husky。
⚠️ 注意事项(非常重要)
因为整个安装脚本都跳过了,一些依赖会不可用,例如:
-
node-sass→ 缺少 binding,会直接报错 -
sharp→ 没有下载 C++ 二进制,不能用 -
esbuild→ 不会下载 native binary -
pnpm/corepack→ 不会 create symlink -
husky→ 不会生成 hooks
所以这是一个 应急手段,不应作为正常安装方式。
如果你是为了解决 node-sass 4.14.1 下载失败的问题
推荐替代方案:
✅ 1. 直接换成 sass(dart-sass)
node-sass 已废弃,而且和 Node 16/18/20 不兼容:
✅ 2. 如果项目必须用 node-sass(旧项目)
手动安装 binding:
或设置镜像:

浙公网安备 33010602011771号