在Angular 12中禁用传统的View Engine编译模式。

5
自从 Angular 10 版本以来,我们在一个 Angular 库里添加了以下的设置:
"angularCompilerOptions": {
  "enableIvy": false
}

我现在正在尝试在升级到Angular 12时使用Ivy编译器。从我所阅读的所有内容来看,由于Ivy是默认设置,因此删除enableIvy或将其设置为true应该会导致构建使用Ivy。然而,无论采取哪种更改,我仍然看到:

Compiling with Angular in legacy View Engine compilation mode.

作为比较,我开始了一个新库,在那里我看到:

Compiling with Angular sources in Ivy full compilation mode.

我无法确定还有哪些差异会导致Angular仍然使用View Engine。我还应该寻找什么?


1
我认为处理库的方式略有不同。如果我没记错的话,你应该在没有--prod标志的情况下构建它。 - MikeOne
1个回答

6

我曾经遇到过Angular 12和Packagr的问题,并通过以下两个步骤解决了它:

  1. 在tsconfig.json中启用ivy:
"angularCompilerOptions": {
  "enableIvy": true,
  "compilationMode": "partial"
}

compilationMode参数是发布到npm注册表时相关的。

  1. 确保编译器能够看到并使用this tsconfig.json配置文件。 在Angular 12中,CLI参数似乎是必须的。 我在package.json中更新了我的scripts
"packagr": "ng-packagr -p ./src/lib/package.json -c ./src/tsconfig.json"

在大多数示例中,都缺少-c(或--config)部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接