Node.js v20触发Illegal instruction报错求助:Angular项目无法启动
解决Node.js v20+升级后的非法指令及Jest运行问题
核心原因
Illegal instruction (core dumped)报错本质是Node.js二进制包编译时使用了你的CPU不支持的指令集,snap源的Node.js默认针对新CPU优化,老CPU无法兼容这些指令;Jest无法运行则大概率是依赖缓存或版本兼容性问题。
具体解决方案
1. 替换Node.js安装方式(弃用snap)
snap版本的Node.js编译参数不适合老CPU,改用nvm安装通用编译版本:
- 卸载snap版Node.js:
sudo snap remove node - 安装nvm:
获取nvm官方安装脚本执行,完成后重启终端,通过nvm --version确认安装成功。 - 安装并启用Node.js v20:
nvm提供的二进制包针对通用CPU编译,不会启用小众指令集,能解决非法指令问题。nvm install 20 nvm use 20
2. 修复Jest运行故障
换用nvm的Node.js后,执行以下步骤重置依赖:
- 清除项目缓存与依赖:
rm -rf node_modules package-lock.json npm cache clean --force npm install - 升级Jest至兼容版本:
Node.js v20要求Jest 29.6.0及以上,执行命令升级:npm install jest@latest --save-dev - 验证测试运行:
npm test
3. 验证Angular项目
新建测试项目确认问题解决:
ng new test-app cd test-app npm start
Angular 17与Node.js v20.11.1版本兼容,更换Node.js安装源后应能正常启动。
内容的提问来源于stack exchange,提问作者Frozen_byte
相关产品推荐
相关产品推荐

