I just updated my Angular2 project to RC4 and the router is now sending out this warning message in the console when I open my application:
router.umd.js:2466 'FrontpageComponent' not found in precompile array. To ensure all components referred to by the RouterConfig are compiled, you must add 'FrontpageComponent' to the 'precompile' array of your application component. This will be required in a future release of the router.
I've tried to figure out what exactly I need to do to fix this but since documentation is sparse I can't find an answer. What is this precompile array and where can I find it or how do I add it?
In newer router versions this shouldn't be necessary anymore.
<= RC.4
It's just an additional parameter to the @Component()
or @Directive()
decorator:
@Component({
selector: '...',
template: '...',
directives: [FrontpageComponent],
precompile: [FrontpageCmponent]
})
https://github.com/angular/angular/blob/6c5b653593eff19c5b9342b2cf0195aca49379cb/modules/%40angular/core/src/metadata/directives.ts#L968
/**
* Defines the components that should be precompiled as well when
* this component is defined. For each components listed here,
* Angular will create a {@link ComponentFactory ComponentFactory} and store it in the
* {@link ComponentFactoryResolver ComponentFactoryResolver}.
There is no need to define in directives. Use code below
@Component({
selector: '...',
template: '...',
directives: [],
precompile: [FrontpageCmponent]
})
If you upgrade your "@angular/router": "3.0.0-beta.1" to "@angular/router": "3.0.0-beta.2" .then warning will be solve.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With