M1 Mac运行Node 12+Angular 9项目遇异常,求解决方案
解决M1 Mac上Node 12 + Angular 9项目运行问题
一、修复Angular CLI的ENOENT错误
- 用Rosetta 2启动终端:找到「终端」应用,右键选「显示简介」,勾选「使用Rosetta打开」,重启终端。Node 12早期版本无arm64预编译包,Rosetta可转译兼容x86版本。
- 重新安装Node 12:
nvm uninstall 12 nvm install 12 nvm use 12 - 重装Angular CLI 9:
npm uninstall -g @angular/cli npm cache clean --force npm i -g @angular/cli@9 - 执行
ng --version验证,此时应正常输出版本信息。
二、解决项目npm i的依赖错误
- 清理项目现有依赖:
rm -rf node_modules rm package-lock.json - 配置npm强制拉取x86架构预编译包:
npm config set arch x64 - 执行
npm i安装依赖,若仍有二进制包编译失败:- 若项目用了node-sass,安装兼容版本:
npm i node-sass@4.14.1 - 或替换为跨架构更好的dart-sass:
npm uninstall node-sass && npm install sass
- 若项目用了node-sass,安装兼容版本:
三、额外注意事项
- 所有全局npm包需通过Rosetta终端安装,避免混合架构引发路径错误。
- 项目中其他二进制依赖(如canvas、sharp),需确保安装x86版本,或升级到兼容Node 12的arm64版本。
内容的提问来源于stack exchange,提问作者Sebastian Knell
相关产品推荐
相关产品推荐

