Angular CLI 1.2.6执行ng build -prod卡在14%求助
兄弟,我太懂这种卡在构建进度条不动的崩溃感了!你说的这个情况——新项目用相同依赖能正常构建,一导入自己的文件就卡在14%,大概率是你自己的代码里藏了构建工具搞不定的坑,我给你几个排查方向,亲测有效:
实用排查方案
- 优先排查循环依赖:这是生产构建卡进度的重灾区!比如你写的A模块导入了B模块,结果B模块又绕回来导入了A模块,开发模式下Angular可能睁一只眼闭一只眼,但生产构建的优化阶段直接就卡壳了。你可以试试用
madge --circular src/工具自动检测(如果不想装工具,就手动梳理你导入的文件引用链)。 - 检查导入路径的大小写问题:Windows系统不区分文件名大小写,但生产构建(尤其是用Linux环境编译的话)会严格校验。比如你写
import { UserService } from './services/UserService',但实际文件是userservice.ts,开发时没问题,构建到这里就会卡住。 - 逐个排除可疑文件:既然一导入自己的文件就出问题,那你可以试着逐个注释掉你新增的文件导入,每次注释后跑一次
ng build --prod,看注释到哪个文件时构建恢复正常,瞬间就能定位到问题源。 - 清理构建缓存和依赖:有时候缓存会搞出莫名其妙的问题,执行这几条命令试试:
npm cache clean --force rm -rf node_modules dist npm install - 临时关闭AOT编译排查:执行
ng build --prod --aot=false,如果这次能正常构建,说明问题出在AOT编译阶段的代码上——比如组件模板里的语法错误、元数据定义错误,或者某个第三方库不兼容AOT模式。 - 对比新项目和当前项目的依赖锁文件:虽然你说package.json相同,但
package-lock.json(或yarn.lock)里可能存在依赖版本差异,比如某个间接依赖的版本不一样导致冲突,对比一下就能发现问题。
如果以上方法都试过还是不行,你可以把卡住时的进程日志(哪怕只有那一行)结合你导入的核心文件代码贴出来,应该能更快定位到问题!
内容的提问来源于stack exchange,提问作者Daniel Horne
相关产品推荐
相关产品推荐

