You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Webpack.optimize.UglifyJsPlugin小写Angular模板属性名问题

现象说明

本地开发环境默认不会开启混淆压缩规则,指令命名不会被修改,因此运行正常;只有生产构建环节启用Uglify压缩时才会触发属性转小写的问题,和你已完成的模块导入配置无关。

修复配置方案

直接修改Webpack配置中Webpack.optimize.UglifyJsPlugin的初始化参数,添加以下规则即可:

new webpack.optimize.UglifyJsPlugin({
  uglifyOptions: {
    // 避免混淆修改Angular相关指令属性名
    mangle: {
      keep_fnames: true,
      properties: {
        // 不对引号包裹的属性名做修改,大部分内嵌Angular模板的属性会以字符串形式存在
        keep_quoted: true,
        // 手动指定要保留的属性关键字,避免被转小写/混淆
        reserved: [
          'ngFor',
          'ngIf',
          'ngSwitch',
          'ngClass',
          'ngStyle'
          // 其他用到的Angular内置/自定义指令属性可按需补充
        ]
      }
    },
    compress: {
      // 关闭可能修改属性名大小写的压缩规则
      properties: false
    }
  }
})

替代优化方案

如果调整上述配置后仍存在兼容问题,可将UglifyJsPlugin替换为Angular 12官方构建流程默认使用的terser-webpack-plugin,该压缩工具对Angular模板语法的兼容性更好,默认不会出现强制转小写的问题。

内容的提问来源于stack exchange,提问作者GPicazo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:54:08