Ionic构建失败:报错对应代码行已不存在
兄弟,我太懂这种离谱的报错了——明明代码都改了半天,终端还揪着早就删掉的行号报错,简直离谱!别慌,这大概率是各种缓存在搞鬼,给你几个靠谱的解决步骤,按顺序试就行:
清理Ionic构建缓存:先把当前运行的服务停掉(按
Ctrl+C),然后执行这个命令彻底清理旧构建产物:ionic build --clean
这个命令会强制删除之前的编译结果,重新生成全新的构建文件,很多时候旧行号报错就是因为残留了旧的编译产物。清理Angular缓存:如果你的Ionic项目用的是Angular框架,执行这个命令清空Angular的缓存:
ng cache clean
要是你的Angular版本比较旧,可能得用ng clean或者项目里配置的npm run clean脚本。强制刷新浏览器缓存:运行
serve --lab时,浏览器可能缓存了旧的JS bundle。按Ctrl+Shift+R(Windows/Linux)或者Cmd+Shift+R(Mac)强制刷新,或者打开浏览器开发者工具,在「Network」面板勾选「Disable cache」,再重新加载页面。检查是否有残留的服务进程:有时候之前启动的
ionic serve进程没彻底关掉,后台还在跑旧代码。打开任务管理器(Windows)或者活动监视器(Mac),把所有和node相关的进程关掉,再重新启动服务。禁用Live Reload测试:如果上面的方法都没用,试试不带Live Reload启动服务:
ionic serve --lab --no-live-reload
要是这样不报错了,说明Live Reload的缓存出了问题,之后再重新启用Live Reload就行。激进方案:重置依赖(最后再试):如果前面的都不管用,再试试删除
node_modules文件夹和package-lock.json(用Yarn的话删yarn.lock),然后重新执行:npm install
这个能彻底重置依赖环境,但耗时久一点,所以放最后试。
内容的提问来源于stack exchange,提问作者Atoyansk

