Angular项目执行npm install失败 Node Modules安装报错排查
Angular项目npm install安装失败排查方案
问题根因拆解
从报错日志可以定位两类问题,其中网络解析错误是直接导致安装中断的致命问题,peer依赖警告不会直接终止安装流程,排查优先级更低:
- 致命错误:
ENOTFOUND域名解析失败,当前npm配置的jfrog私有源域名jfrog.aws.wfscorp.com无法正常解析,属于网络连通性或源配置错误 - 兼容警告:
ERESOLVEpeer依赖版本不匹配,当前项目使用的@angular/core@13.3.8,不在angular-user-idle@2.2.7、apollo-angular@2.6.0声明的兼容版本范围内,npm会输出依赖覆盖提示
分步解决流程
1. 优先修复源连通性问题
按以下顺序逐一排查:
- 执行命令查看当前npm生效的源配置,确认源地址是否符合预期:
npm config get registry
- 若无需使用该jfrog私有源,直接切换源为公共npm源即可:
npm config set registry https://registry.npmjs.org/
- 若必须使用该私有源,依次做以下校验:
- 确认设备已接入对应内网、VPN连接正常,企业私有源通常不对外网开放访问
- 执行ping命令测试域名解析是否正常:
ping jfrog.aws.wfscorp.com- 若开启了系统代理,检查代理规则是否将该私有域名加入直连白名单,避免代理转发导致解析失败,可临时关闭代理后重试
- 检查本地hosts文件是否存在该域名的错误映射记录,修正后重试
- 源配置调整完成后,清空本地缓存再重试安装:
npm cache clean --force npm install
2. 处理peer依赖兼容警告
网络问题修复后,如果安装仍因依赖冲突终止,再处理版本兼容问题:
- 优先方案:升级不兼容依赖到支持Angular 13的版本
angular-user-idle3.0.0及以上版本已适配Angular 13apollo-angular3.x及以上版本已适配Angular 13
执行以下命令升级依赖:
npm install angular-user-idle@latest apollo-angular@latest --save - 临时方案:若短期无法升级依赖,执行安装时增加
--legacy-peer-deps参数,跳过peer依赖严格校验强制安装:npm install --legacy-peer-deps注意:该方案会绕过npm的依赖版本校验,可能导致运行时出现兼容性异常,仅适合临时调试场景,不建议长期使用。
原始报错日志
npm WARN npm WARN Could not resolve dependency: npm WARN peer @angular/core@"13.3.8" from @angular/router@13.3.8 npm WARN node_modules/@angular/router npm WARN @angular/router@"13.3.8" from the root project npm WARN ERESOLVE overriding peer dependency npm WARN While resolving: angular-user-idle@2.2.7 npm WARN Found: @angular/core@13.3.8 npm WARN node_modules/@angular/core npm WARN @angular/core@"13.3.8" from the root project npm WARN 7 more (@angular/animations, @angular/cdk, @angular/forms, ...) npm WARN npm WARN Could not resolve dependency: npm WARN peer @angular/core@"^6.0.0 || ^12.0.0" from angular-user-idle@2.2.7 npm WARN node_modules/angular-user-idle npm WARN angular-user-idle@"^2.2.7" from the root project npm WARN ERESOLVE overriding peer dependency npm WARN While resolving: angular-user-idle@2.2.7 npm WARN Found: @angular/core@13.3.8 npm WARN node_modules/@angular/core npm WARN @angular/core@"13.3.8" from the root project npm WARN 7 more (@angular/animations, @angular/cdk, @angular/forms, ...) npm WARN npm WARN Could not resolve dependency: npm WARN peer @angular/core@"^6.1.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0" from apollo-angular@2.6.0 npm WARN node_modules/apollo-angular npm WARN apollo-angular@"^2.6.0" from the root project npm WARN ERESOLVE overriding peer dependency npm WARN While resolving: angular-user-idle@2.2.7 npm WARN Found: @angular/core@undefined npm WARN node_modules/@angular/core npm WARN @angular/core@"13.3.8" from the root project npm WARN npm WARN Could not resolve dependency: npm WARN peer @angular/core@"^6.0.0 || ^12.0.0" from angular-user-idle@2.2.7 npm WARN node_modules/angular-user-idle npm WARN angular-user-idle@"^2.2.7" from the root project npm ERR! code ENOTFOUND npm ERR! syscall getaddrinfo npm ERR! errno ENOTFOUND npm ERR! network request to http://jfrog.aws.domain.com/artifactory/api/npm/npm/ajv failed, reason: getaddrinfo ENOTFOUND jfrog.aws.wfscorp.com npm ERR! network This is a problem related to network connectivity. npm ERR! network In most cases you are behind a proxy or have bad network settings. npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly. See: 'npm help config' npm ERR! A complete log of this run can be found in: npm ERR! /Users/user/.npm/_logs/2022-06-17T18_56_28_331Z-debug-0.log
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

