什么时候我应该调用compileComponents,我怎么逃避不这样做?

Mar*_*ery 9 javascript angular

compileComponents无益的文档只说明了这一点:

使用a templateUrl为测试的NgModule 编译组件.有必要调用此函数,因为获取URL是异步的.

然而,这并没有解释在什么情况下调用这个函数是"必要的",也没有解释不这样做的后果.我目前正在处理的应用程序对带有templateUrls的组件进行单元测试,这些测试涉及查看使用的DOM By.css,但它们似乎工作正常,即使我们从不compileComponents在代码库中调用任何地方.与此同时,互联网上还有其他帖子,如https://github.com/angular/angular-cli/pull/4757,表明compileComponents不需要通话.

在什么情况下我应该称这种方法为什么?

Pau*_*tha 14

在什么情况下我应该称这种方法为什么?

如果您使用的WebPack(如果配置正确),构建将编译templateUrls转换直列templateS和styleUrlsstyles.所以没有必要,compileComponents因为它就像你正在使用template,styles即使你没有.

例如,如果您正在使用SystemJS(或者您没有执行此预编译/转换的其他构建步骤),则不会发生这种情况.Angular需要发出XHR请求来检索外部模板和外部样式,然后进行编译.在这里,你需要compileComponents.

这在测试文档中说明

WebPack开发人员无需调用,compileComponents因为它将模板和css内联为运行测试之前的自动构建过程的一部分.