使用Angular CLI创建Angular 5应用时遭遇依赖错误求助
解决Angular CLI安装依赖错误(ETARGET: require-from-string@^1.1.0找不到)
你的问题核心是npm依赖解析出现了版本匹配故障——cosmiconfig依赖的require-from-string@^1.1.0版本无法被npm找到,这大概率是旧缓存干扰、npm版本过旧,或是Node.js与Angular CLI版本不兼容导致的。试试下面这些分步解决办法:
第一步:彻底清理npm缓存
缓存里的过时依赖信息很可能是罪魁祸首,先强制清空缓存:
npm cache clean --force
第二步:完全卸载全局Angular CLI残留
确保之前的CLI安装痕迹被彻底清除:
npm uninstall -g @angular/cli
同时手动检查并删除以下路径的残留文件(如果存在):
C:\Users\toddh\AppData\Roaming\npm\node_modules\@angularC:\Users\toddh\AppData\Roaming\npm\ng(Angular CLI的全局命令文件)
第三步:升级npm到稳定版本
你的npm版本是5.6.0,属于较旧版本,存在不少依赖解析的已知bug,先升级npm:
npm install -g npm@latest
第四步:安装与Node.js兼容的Angular CLI版本
你的Node.js是v8.9.4,这个版本对Angular CLI 7+的兼容度不好,建议安装适配的6.x版本:
npm install -g @angular/cli@6.2.9
额外提醒:关于Angular版本迁移的正确姿势
之前直接替换src文件夹的操作忽略了Angular 4和5的配置差异——两个版本的package.json依赖、项目配置文件(.angular-cli.json)都有区别,直接替换src必然导致依赖不匹配。下次迁移代码时,建议:
- 保留新项目的
package.json和配置文件 - 把旧项目src里的代码逐个迁移过来
- 根据新项目的Angular版本,调整旧代码里的API差异(比如Angular 5对某些RxJS操作符的用法有变化)
内容的提问来源于stack exchange,提问作者Todd Davis
相关产品推荐
相关产品推荐

