12

我们想在 webpack 中使用新的 Angular 8 Ivy 编译器。我们不使用 Angular CLI。这可能吗?如何才能做到这一点?我似乎无法找到有关此要求的信息。

4

3 回答 3

11

要了解该怎么做,您必须深入研究 Angular CLI 代码并查看他们在哪里使用enableIvy标志。

我还没有看到你的 Webpack 配置,但我猜你正在使用AngularCompilerPlugin.
如果是这种情况,那么您必须提供enableIvyin compilerOptions

有关更多详细信息,请查看此处(定义标志的位置)、此处(定义插件选项的位置)和此处compilerOptions初始化插件的位置)。

插件配置可能如下所示:

... // The rest of your webpack config
plugins: [
  new AngularCompilerPlugin({
    compilerOptions: {
      enableIvy: true,
      ...// the rest of compiler options
    }
    ...// The rest of options you provide to AngularCompilerPlugin
  })
  ...// The rest of your plugins 
]

我不确定他们是否在其他地方使用这个标志,但这个地方是必须的,它可能会给你你想要的。

无论如何,如果您不想让自己头疼,我建议您坚持使用 Angular CLI。
否则你将不得不经常访问他们的代码库。

如果您使用的是 Webpack,那么很可能可以使用 Angular CLI 和Custom Webpack Builder来做您需要的事情。
如果您在配置构建器时遇到困难,非常欢迎您访问 Angular Builders Slack 频道

于 2019-06-26T21:46:04.583 回答
3

Ivy 尚未正式发布。使用 Angular 8 版,您可以选择使用 CLI 进行预览。

请参阅:https ://blog.angular.io/a-plan-for-version-8-0-and-ivy-b3318dfc19f7

Angular 应该在版本 9 中完全切换到 Ivy。然后你可能会找到更多关于使用 Ivy 和自定义 webpack 配置的文档。

在那之前,我会建议以下任何一项:

  1. 在Angular Builders存储库上打开一个新问题并在那里提出这个问题。Angular 构建器是首选替代ng eject方案,当涉及到此类问题时,他们可能会比堆栈溢出的平均 joe 有更多的答案。
  2. 在 Angular 存储库上打开一个问题并在那里提出这个问题。
于 2019-06-25T07:19:04.503 回答
2

Ivy 仍处于预览模式。如果您想尝试按照以下屏幕截图中的步骤操作,

它在官方文档中提到,https://angular.io/guide/ivy#using-ivy-in-an-existing-project

在此处输入图像描述

于 2019-06-25T07:44:46.703 回答