-
Notifications
You must be signed in to change notification settings - Fork 11.9k
Description
Bug Report or Feature Request (mark with an x)
- [X ] bug report -> please search issues before submitting
- [ ] feature request
Versions.
@angular/cli: 1.0.0
node: 7.5.0
os: win32 x64
@angular/common: 4.1.0
@angular/compiler: 4.1.0
@angular/core: 4.1.0
@angular/forms: 4.1.0
@angular/http: 4.1.0
@angular/platform-browser: 4.1.0
@angular/platform-browser-dynamic: 4.1.0
@angular/router: 4.1.0
@angular/cli: 1.0.0
@angular/compiler-cli: 4.1.0
Repro steps.
Link to sample repo =>
https://github.com/markvdesign/angular-cli-issue
Steps to reproduce
Add a route using loadChildren string path to a module and use a variable in either an ES6 template string or concatenated string will reproduce the error when running ng serve
Example
const modName = 'Lazy';
const appRoutes: Routes = [
{ path: '', component: SecondComponent },
{
path: 'lazyMod',
loadChildren: 'app/' + modName.toLowerCase() + '-mod/lazy-mod.module#' + modName + 'ModModule'
}
];
Replacing the ES6 template string or concatenated string with loadChildren: 'app/lazy-mod/lazy-mod.module#LazyModModule will load the module as expected.
The log given by the failure.
ERROR Error: Uncaught (in promise): Error: Cannot find module 'app/lazy-mod/lazy-mod.module'.
Error: Cannot find module 'app/lazy-mod/lazy-mod.module'.
at webpackEmptyContext (src async:2) [angular]
at SystemJsNgModuleLoader.loadAndCompile (core.es5.js:5870) [angular]
at SystemJsNgModuleLoader.load (core.es5.js:5858) [angular]
at RouterConfigLoader.loadModuleFactory (router.es5.js:3324) [angular]
at RouterConfigLoader.load (router.es5.js:3308) [angular]
at MergeMapSubscriber.project (router.es5.js:1562) [angular]
at MergeMapSubscriber._tryNext (mergeMap.js:120) [angular]
at MergeMapSubscriber._next (mergeMap.js:110) [angular]
at MergeMapSubscriber.Subscriber.next (Subscriber.js:89) [angular]
at ScalarObservable._subscribe (ScalarObservable.js:49) [angular]
at ScalarObservable.Observable._trySubscribe (Observable.js:57) [angular]
at ScalarObservable.Observable.subscribe (Observable.js:45) [angular]
at MergeMapOperator.call (mergeMap.js:85) [angular]
at Observable.subscribe (Observable.js:42) [angular]
at webpackEmptyContext (src async:2) [angular]
at SystemJsNgModuleLoader.loadAndCompile (core.es5.js:5870) [angular]
at SystemJsNgModuleLoader.load (core.es5.js:5858) [angular]
at RouterConfigLoader.loadModuleFactory (router.es5.js:3324) [angular]
at RouterConfigLoader.load (router.es5.js:3308) [angular]
at MergeMapSubscriber.project (router.es5.js:1562) [angular]
at MergeMapSubscriber._tryNext (mergeMap.js:120) [angular]
at MergeMapSubscriber._next (mergeMap.js:110) [angular]
at MergeMapSubscriber.Subscriber.next (Subscriber.js:89) [angular]
at ScalarObservable._subscribe (ScalarObservable.js:49) [angular]
at ScalarObservable.Observable._trySubscribe (Observable.js:57) [angular]
at ScalarObservable.Observable.subscribe (Observable.js:45) [angular]
at MergeMapOperator.call (mergeMap.js:85) [angular]
at Observable.subscribe (Observable.js:42) [angular]
at resolvePromise (zone.js:710) [angular]
at resolvePromise (zone.js:681) [angular]
at :4200/polyfills.bundle.js:3415:17 [angular]
at Object.onInvokeTask (core.es5.js:4116) [angular]
at drainMicroTaskQueue (zone.js:591) [<root>]
at HTMLAnchorElement.ZoneTask.invoke (zone.js:464) [<root>]
Desired functionality.
The loadChildren property should take a string, concatenated string or an ES6 template string.
Mention any other details that might be useful.
If you load the demo app with the loadChildren: 'app/lazy-mod/lazy-mod.module#LazyModModule string to begin. You will need to stop ng serve, clear the cache on the browser (I was using Chrome) change to the template string then restart ng serve to reproduce the error.
This also may be linked to issue #5981 as it is producing similar error output.