删除重建同名组件后Angular CLI无法识别工作区已有模块求助
解决Angular CLI重建组件后模块找不到的问题
我之前也碰到过一模一样的糟心事——删了组件再同名重建,CLI就开始抽风,明明模块好好的却找不到。这大概率是Angular CLI的缓存或者构建残留搞的鬼,下面是我亲测有效的彻底清理步骤,按顺序来基本都能解决:
第一步:先停掉所有运行的Angular服务
不管是ng serve还是ng build --watch,先全部关掉,不然缓存文件被占用,根本清理不彻底。第二步:清理Angular CLI的缓存
直接用官方的缓存清理命令,这是最直接高效的方式:ng cache clean --all如果是旧版本CLI不支持这个命令,可以手动删除缓存目录:
# Linux/macOS系统 rm -rf node_modules/.cache/@angular # Windows系统 rmdir /s /q node_modules\.cache\@angular第三步:清理构建产物和TypeScript缓存
把项目里的旧构建输出和TS增量编译缓存全删掉,避免旧文件干扰:# 删除dist构建输出文件夹 rm -rf dist # 删除TS编译缓存文件 rm -f tsconfig.tsbuildinfo第四步:(可选)重置Node依赖(前面步骤没用再试)
有时候依赖的缓存也会出幺蛾子,虽然你说模块是自己写的,但可以试试重置依赖:# 删除node_modules和锁文件 rm -rf node_modules rm -f package-lock.json # 重新安装依赖 npm install第五步:重新构建并启动服务
先强制清理构建再重新构建,确保所有文件都是最新的状态:ng build --clean ng serve
另外提个小细节:你删除组件的时候,有没有确认把模块里的组件声明、导出这些都删干净了?虽然重建的时候CLI会自动添加,但如果之前残留了旧的引用,也可能导致奇怪的错误。不过大部分情况还是缓存的锅,先按上面的步骤来就行。
内容的提问来源于stack exchange,提问作者Reed
相关产品推荐
相关产品推荐

