构建Angular 4应用遇TS2307错误:无法找到@angular/core模块求解决
这个错误我碰到过不少次,通常是依赖缺失、版本不兼容,或是npm/yarn的缓存、依赖树出了问题导致的,给你几个靠谱的解决步骤,按顺序试应该能搞定:
第一步:彻底重装所有依赖
先删掉现有的依赖文件夹和锁文件,再重新安装:# 删除node_modules文件夹 rm -rf node_modules # 针对npm用户,删除锁文件 rm package-lock.json # 针对yarn用户,删除锁文件 rm yarn.lock # 重新安装依赖 npm install # 或yarn install第二步:检查Angular包版本兼容性
Angular 4的@angular/http必须和同版本的@angular/core搭配使用。打开你的package.json,确保@angular/core、@angular/http以及其他核心Angular包(比如@angular/common、@angular/compiler)的版本号完全一致,比如统一用4.4.7(Angular 4的最新稳定版)。如果版本不一致,修改后重新执行安装命令。第三步:清除包管理器缓存
缓存的旧依赖可能会引发奇怪的问题,先清掉缓存再重装:# npm清除缓存 npm cache clean --force # yarn清除缓存 yarn cache clean执行完后再重新运行
npm install或yarn install。第四步:确认TypeScript版本兼容
Angular 4对应的TypeScript版本范围是2.3.x到2.5.x,打开package.json查看typescript的版本,如果过高或过低,修改为兼容的版本(比如2.4.2),然后重新安装依赖。第五步:重启开发服务器和IDE
有时候IDE(比如VS Code)会缓存旧的依赖信息,重启你的IDE和Angular开发服务器(ng serve),让它重新加载新的依赖配置。
如果以上步骤都试过还是不行,可以尝试备份.angular-cli.json后删除它,再重新生成配置,但这种情况比较少见。
内容的提问来源于stack exchange,提问作者MiniSu

