2017-04-25 94 views
1

compileComponents的文档帮倒忙国家只此:什么时候我应该调用compileComponents,以及我如何避免这样做?

编译与templateUrl用于测试的NgModule组件。有必要调用这个函数,因为提取url是异步的。

但是,这并不能说明在什么情况下调用这个函数是“必要的”,也不能解释不这样做的后果。我目前正在使用的应用程序对组件进行了单元测试,其中包含templateUrl s,并且这些测试涉及使用By.css查看DOM,但即使我们从未在代码库中的任何地方拨打compileComponents,它们似乎仍能正常工作。同时,互联网上还有其他帖子,如https://github.com/angular/angular-cli/pull/4757,这表明不需要拨打compileComponents

我应该在什么情况下调用此方法,为什么?

回答

2

在什么情况下我应该调用这个方法,为什么?

如果您使用的WebPack(如果配置正确),构建将编译templateUrl s转换直列template S和styleUrlsstyles。所以没有必要compileComponents,因为它就像你使用templatestyles即使你不是。

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

这在testing docs

的WebPack开发商陈述不必调用compileComponents因为它内联模板和CSS作为先运行测试自动化构建过程的一部分。

相关问题