1

我一直有这个问题,只要我设置

{ mode: 'production' }

在我webpack.config.js已声明使用的 Angular 模板中

@Component({ templateUrl: 'path/to/template.html' })

无法再编译。

产生的错误都与模板中使用的指令有关,例如

src/path/to/template.html:1:123 - error NG8002: Can't bind to 'routerlink' since it isn't a known property of 'a'
4

1 回答 1

1

事实证明,错误提供的信息比看起来的要多。问题实际上是,它已从 更改routerLinkrouterlink

当生产模式处于活动状态时,html-loader启用它的最小化器。由于加载器用于在将模板传递给 Angular 编译器之前获取模板,因此会产生错误。

解决此问题的最简单方法是将caseSensitive选项设置html-loadertrue

{
  module: {
    rules : [
      {
        test: /\.html$/,
        use: [
          {
            loader: 'html-loader',
            options: { minimize: { caseSensitive: true } }
          }
        ]
      }
    ]
  }
}

我在这里记录了这个,所以我希望在 2 或 3 年后搜索它时能找到它。

于 2020-06-30T15:21:08.037 回答