Angular 12项目Node.js版本兼容性冲突问题求助
Angular 12项目Node版本兼容问题解决方案
问题根源
你遇到的是两类冲突:
- 项目依赖的Angular CLI 12要求Node.js 12.14.0/14.15.0,但如果调用了全局高版本CLI,会强制要求Node 18.13+
- Node 18+启用了OpenSSL 3.0,Angular 12的构建工具使用的旧哈希算法不兼容,导致编译报错
方案一:使用项目本地CLI(推荐,符合官方版本要求)
直接调用项目依赖的Angular CLI 12,避免全局高版本CLI干扰:
- Windows命令提示符执行:
或者直接调用本地CLI文件:npx ng serve
这样在Node.js 12.14.0或14.15.0环境下,就能正常启动项目,不会出现CLI版本不匹配的提示。.\node_modules\.bin\ng.cmd serve
方案二:在Node 18+环境下解决编译报错
如果必须使用Node 18+,通过设置环境变量兼容旧哈希算法:
临时启动(每次执行都要设置)
- 命令提示符(cmd):
set NODE_OPTIONS=--openssl-legacy-provider && ng serve - PowerShell:
$env:NODE_OPTIONS="--openssl-legacy-provider"; ng serve
永久配置到package.json
修改项目根目录的package.json,更新scripts里的相关命令:
"scripts": { "serve": "set NODE_OPTIONS=--openssl-legacy-provider && ng serve", "build": "set NODE_OPTIONS=--openssl-legacy-provider && ng build", // 其他构建类脚本可同理添加环境变量 }
之后直接执行npm run serve或npm run build即可自动加载兼容配置。
内容的提问来源于stack exchange,提问作者Larissa Rodrigues
相关产品推荐
相关产品推荐

