使用Nx从Angular 9.x迁移至10.x时执行迁移命令报错
解决Nx迁移Angular 9.x到10.x时
npm install执行失败的报错 问题重现
执行迁移命令:
npx nx migrate --run-migrations=migrations.json
触发报错,核心提示为错误:命令执行失败:npm install,堆栈信息指向Nx内部通过execSync调用npm安装时失败,且无详细stdout/stderr输出。当前Node版本为12.11.0。
解决方案
手动执行
npm install排查具体错误
直接在项目根目录运行npm install,查看是否有依赖冲突、网络超时、缓存损坏等具体报错信息——原报错中stdout/stderr为空,是因为Nx的execSync调用未捕获到详细日志,单独执行能暴露真实问题。清理缓存后重新安装依赖
- 清理npm缓存:
npm cache clean --force - 删除项目根目录的
node_modules文件夹和package-lock.json文件 - 重新执行
npm install,确认依赖安装成功后,再运行迁移命令。
- 清理npm缓存:
升级Node和npm版本
Angular 10要求Node版本≥12.13.0,当前使用的12.11.0低于最低兼容版本:- 升级Node到12.x LTS的稳定版本(如12.22.12)
- 同步升级npm到6.12.0及以上版本:
npm install -g npm@6
拆分迁移流程,手动完成依赖更新
若自动迁移的npm install始终失败,拆分步骤执行:- 生成迁移配置文件:
npx nx migrate @nrwl/workspace@10 - 根据
migrations.json中的版本提示,手动修改package.json里的Angular、Nx相关依赖版本到10.x - 手动执行
npm install确保依赖安装完成 - 最后执行迁移脚本:
npx nx migrate --run-migrations=migrations.json
- 生成迁移配置文件:
排查Windows权限问题
以管理员身份打开命令提示符,再执行迁移和安装命令,避免因权限不足导致的文件读写失败;同时确认项目目录未被系统权限限制。
内容的提问来源于stack exchange,提问作者jay sinha
相关产品推荐
相关产品推荐

