macOS升级至Monterey后执行npm install报错E404如何解决
问题解决方案
故障根因
本次报错是因为你项目依赖中指定的esprima包直接拉取GitHub仓库的master分支,而该仓库已将默认分支名改为main,旧地址失效;再加上升级macOS Monterey后本地Node/npm版本可能发生变动,旧依赖锁文件记录的下载地址无法匹配现有环境,最终触发404错误。
处理步骤
- 第一步:清理旧的依赖文件和缓存
执行以下命令删除失效的依赖目录、锁文件:
rm -rf node_modules package-lock.json yarn.lock npm cache clean --force
- 第二步:修正esprima依赖配置
打开项目根目录的package.json文件,找到esprima对应的配置行,二选一修改即可:- 优先使用官方稳定发行版(兼容性最好):将配置改为
"esprima": "^4.0.1" - 若必须使用仓库源码版本:将原地址中的
master改为main,即"esprima": "https://github.com/ariya/esprima/tarball/main"
- 优先使用官方稳定发行版(兼容性最好):将配置改为
- 第三步:重新执行安装
使用npm官方源重新安装依赖,避免私有源缓存问题:
npm install --registry=https://registry.npmjs.org
兼容优化方案
如果调整后仍有Grunt相关的版本兼容报错,大概率是系统升级后Node版本过高导致,可安装Node版本管理工具切换到适配性更高的14.x/16.x LTS版本再执行安装操作。
内容的提问来源于stack exchange,提问作者Asanka
相关产品推荐
相关产品推荐

