Angular生产构建突发失败求助(CLI 1.6.7):TypeError: Cannot read property 'line' of undefined
解决Angular CLI 1.6.7构建报错:TypeError: Cannot read property 'line' of undefined
我之前也碰到过旧版Angular CLI类似的诡异构建报错,结合你描述的「之前正常、突然失败」的情况,大概率是缓存、依赖冲突或者模板语法的隐性问题,给你几个实际可行的排查和解决方向:
优先清理Angular CLI缓存
旧版本的Angular CLI缓存机制很容易出问题,尤其是长期运行后。先试试清理缓存:ng cache clean如果这条命令无效,可以手动删除缓存目录:
- Windows系统:删除
%AppData%\npm-cache和项目根目录下的.angular-cli文件夹 - Mac/Linux系统:删除
~/.npm和项目根目录下的.angular-cli文件夹
清理后再重新执行构建命令ng build --prod试试。
- Windows系统:删除
排查依赖版本冲突
哪怕你没主动升级依赖,有时候npm install会因为版本范围(比如^或~)偷偷更新子依赖,导致和Angular CLI 1.6.7不兼容。可以按以下步骤操作:- 删除项目根目录下的
node_modules文件夹、package-lock.json文件 - 重新执行
npm install - 如果需要固定依赖版本,建议把
package.json里的依赖版本号前的^或~去掉,避免自动升级
- 删除项目根目录下的
检查组件模板的隐性语法错误
这个报错有时候并不是CLI本身的问题,而是组件模板里的语法错误触发的。比如未闭合的HTML标签、错误的插值表达式、自定义指令/管道的参数错误等。你可以:- 重点检查最近修改过的组件模板文件,尤其是构建失败前最后改动的几个文件
- 执行
ng lint命令,它能帮你找出很多潜在的语法或规范问题
升级到同大版本的最新稳定CLI
Angular CLI 1.6.7确实是比较老旧的版本(2018年发布),存在一些已知的构建bug。你可以尝试升级到1.7.x分支的最新稳定版(比如1.7.4),这个版本和1.6.x兼容性很好,不会破坏现有代码:npm install @angular/cli@1.7.4 --save-dev升级完成后记得清理缓存再重新构建。
如果以上方法都没解决,可以尝试新建一个Angular 1.6.x的空白项目,把现有代码逐步迁移过去,排查是不是项目配置文件(比如.angular-cli.json)出现了损坏或异常。
内容的提问来源于stack exchange,提问作者Ayyaz Zafar
相关产品推荐
相关产品推荐

