Angular 6项目执行npm install时node-sass安装报错求助
解决Angular 6项目npm install时node-sass构建失败问题
核心原因
项目依赖的ng-packagr属于间接依赖旧版node-sass,当前使用的Node.js 16.x与旧版node-sass存在兼容性冲突,导致构建失败。且node-sass已废弃,官方推荐用sass(即dart-sass)替代。
解决方案
方案1:用npm overrides强制替换间接依赖的node-sass
npm 8+支持overrides字段,可强制将依赖树中所有node-sass替换为sass:
- 打开项目根目录的
package.json,在文件末尾添加以下配置:
"overrides": { "node-sass": "npm:sass@^1.32.13" }
选择1.32.13版本是因为它是兼容Angular 6的稳定旧版,避免版本过高引发不兼容问题。
2. 删除项目根目录的node_modules文件夹和package-lock.json文件
3. 执行命令:
npm install
方案2:临时降级Node.js版本到Angular 6兼容版本
Angular 6官方推荐的Node.js版本为8.x或10.x,旧版node-sass在这些版本下可正常构建:
- 用nvm(Node版本管理器)安装并切换到Node.js 10.x LTS版本:
nvm install 10.24.1 nvm use 10.24.1
- 删除
node_modules和package-lock.json,重新执行:
npm install
额外注意
如果执行npm install时出现大量peer依赖警告,可先执行以下命令放松npm的peer依赖检查:
npm config set legacy-peer-deps true
再执行npm install
内容的提问来源于stack exchange,提问作者mattstuehler
相关产品推荐
相关产品推荐

