我们想在 webpack 中使用新的 Angular 8 Ivy 编译器。我们不使用 Angular CLI。这可能吗?如何才能做到这一点?我似乎无法找到有关此要求的信息。
3 回答
要了解该怎么做,您必须深入研究 Angular CLI 代码并查看他们在哪里使用enableIvy
标志。
我还没有看到你的 Webpack 配置,但我猜你正在使用AngularCompilerPlugin
.
如果是这种情况,那么您必须提供enableIvy
in 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 频道。
Ivy 尚未正式发布。使用 Angular 8 版,您可以选择使用 CLI 进行预览。
请参阅:https ://blog.angular.io/a-plan-for-version-8-0-and-ivy-b3318dfc19f7
Angular 应该在版本 9 中完全切换到 Ivy。然后你可能会找到更多关于使用 Ivy 和自定义 webpack 配置的文档。
在那之前,我会建议以下任何一项:
- 在Angular Builders存储库上打开一个新问题并在那里提出这个问题。Angular 构建器是首选替代
ng eject
方案,当涉及到此类问题时,他们可能会比堆栈溢出的平均 joe 有更多的答案。 - 在 Angular 存储库上打开一个问题并在那里提出这个问题。
Ivy 仍处于预览模式。如果您想尝试按照以下屏幕截图中的步骤操作,
它在官方文档中提到,https://angular.io/guide/ivy#using-ivy-in-an-existing-project