如何在Angular14的Serve过程中禁用代码压缩混淆?
解决Angular 14 Serve时代码压缩/混淆导致类名重命名的问题
要禁用Angular 14开发服务(ng serve)过程中的所有压缩、混淆操作,直接修改项目配置即可,步骤如下:
- 打开项目根目录下的
angular.json文件 - 找到
projects -> [你的项目名称] -> architect -> serve -> configurations -> development节点(若使用默认serve配置,直接查看serve下的options) - 添加或修改以下配置项,强制关闭所有优化和混淆逻辑:
"optimization": false, "buildOptimizer": false, "vendorChunk": true, "extractLicenses": false, "sourceMap": true, "namedChunks": true - 保存配置后,重新执行
ng serve启动开发服务
关键配置说明
optimization: false:彻底关闭代码压缩、混淆等所有优化操作buildOptimizer: false:禁用Angular专属的构建优化,避免类名被自动重命名namedChunks: true:保留原始代码块名称,方便调试时定位模块sourceMap: true:生成源映射文件,让错误信息直接关联到你的原始代码行
禁用压缩后,你遇到的NullInjectorError: No provider for Tt!错误中的Tt会显示为真实的类/服务名称,此时就能快速定位到哪个依赖没有在模块的providers数组中声明,或是忘记给服务添加@Injectable({ providedIn: 'root' })装饰器。
内容的提问来源于stack exchange,提问作者Václav Mikeska
相关产品推荐
相关产品推荐

