uglifyjsplugin 破坏 angular 2 个模板

uglifyjsplugin breaking angular 2 templates

我的 webpack 配置文件中有这个 uglifyjsplugin 配置:

exports.minify = function() {
 return {
 plugins: [
  new webpack.optimize.UglifyJsPlugin({
            beautify: false,
            comments: false,
            compress: {
                warnings: false,
                drop_console: true
            },
            // Mangling specific options
            mangle: false
        })
   ]
 }
}

我的问题是 uglify 破坏了我的代码,如果我 运行 我的构建没有 uglify 代码工作但如果我添加 uglify 步骤我得到这个错误:

Unexpected closing tag "a" ("d-top"> <div class=container-fluid> <div class=navbar-header> <a href=/ class=navbar-brand>{{title}}[ERROR ->]</a> <button type=button class=navbar-toggle data-toggle=collapse data-target=.navbar-collapse> <span"): HeaderComponent@0:145

我已经 运行 进行了许多 uglify 配置,但错误仍然存​​在。我最初给出错误的 angular 模板是:

<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container-fluid">
    <div class="navbar-header">
      <a href="/" class="navbar-brand">{{title}}</a>
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    <span class="sr-only">Toggle</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
  </button>
</div>
<ul class="nav navbar-nav navbar-right collapse navbar-collapse">
  <li><a href="#" data-toggle="dropdown">General Info</a></li>
  <li><a href="#" data-toggle="dropdown">Author</a></li>
</ul>
  </div>
    </nav>

几个小时后,我找到了解决方案。在 html 加载器中,我们必须添加 minimize:

{
    test: /\.html$/,
    loader: `html?-minimize`
}

模板解析没有正常工作,angular 团队现在已经在他们的文档中提供了解决方法,但希望它能尽快修复 在 webpack.config 文件中添加此

  htmlLoader: {
    minimize: false // workaround for ng2
  },

workaround from angular.io

@pdcc 提到的其他

{
    test: /\.html$/,
    loader: `html?-minimize`
}