Angular 2升级至Angular 5后执行npm install出现ENOENT错误求助
嘿,刚升级到Angular 5就碰到这问题确实闹心,我来帮你捋捋怎么解决这个报错。
首先看报错信息,核心是找不到/home/bijay/projects/project_name/config/Config.d.ts文件,这说明npm install过程中有某个脚本在尝试读写这个不存在的文件,咱们一步步排查:
先确认文件是否真的丢了
直接去/home/bijay/projects/project_name/config/目录下看看,是不是真的没有Config.d.ts。如果确实没了:- 要是之前有项目备份,从备份里恢复这个文件就行;
- 没有备份的话,看看项目里有没有对应的
Config.ts文件,你可以手动创建一个Config.d.ts(哪怕先建个空文件,先试试能不能绕过这个错误,之后再根据实际需求补全声明内容)。
检查package.json里的脚本
打开项目根目录的package.json,看看scripts部分有没有preinstall、install、postinstall这类钩子脚本,是不是这些脚本里写了操作Config.d.ts的代码?如果有,要么是脚本里的文件路径写错了,要么是升级后脚本逻辑不兼容Angular 5,你得调整路径或者修改脚本逻辑。清理缓存重新安装
有时候npm缓存会搞出奇怪的问题,你可以试试这套操作:npm cache clean --force rm -rf node_modules rm package-lock.json npm install先清缓存、删依赖包和锁文件,再重新安装,说不定就能解决。
核对Angular升级的配置文件
升级的时候有没有严格按照官方步骤来?比如有没有更新@angular/cli版本?还有tsconfig.json、旧版本的.angular-cli.json(Angular 5之后可能是angular.json)这些配置文件里,有没有引用config目录的路径?如果路径配置错了,也会导致找不到文件,你得检查这些配置里的路径是否正确。
内容的提问来源于stack exchange,提问作者Bijay Kumar Rai

