PatrickJS / ng4-universal-demo

21 stars 5 forks source link

server-side rendering lazy loaded modules #9

Closed zeves095 closed 7 years ago

zeves095 commented 7 years ago

стартер юниверсала: origin https://github.com/gdi2290/ng4-universal-demo.git ничего не менял - только удалил файл src/modules/ng-express-engine - так как при билде на него была ошибка от транспилера typescript (ntsc --version: Version 2.5.0)

при запросе lazy роута рендеринг на сервере выдает error:

ERROR { Error: Uncaught (in promise): ReferenceError: System is not defined
ReferenceError: System is not defined
    at SystemJsNgModuleLoader.loadAndCompile (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/core/bundles/core.umd.js:5736:16)
    at SystemJsNgModuleLoader.load (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/core/bundles/core.umd.js:5724:60)
    at RouterConfigLoader.loadModuleFactory (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:3418:72)
    at RouterConfigLoader.load (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:3402:52)
    at MergeMapSubscriber.project (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:1570:74)
    at MergeMapSubscriber._tryNext (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/operator/mergeMap.js:120:27)
    at MergeMapSubscriber._next (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/operator/mergeMap.js:110:18)
    at MergeMapSubscriber.Subscriber.next (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/Subscriber.js:89:18)
    at ScalarObservable._subscribe (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/observable/ScalarObservable.js:49:24)
    at ScalarObservable.Observable._trySubscribe (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/Observable.js:171:25)
    at resolvePromise (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:770:31)
    at resolvePromise (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:741:17)
    at /Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:818:17
    at ZoneDelegate.invokeTask (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:424:31)
    at Object.onInvokeTask (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/core/bundles/core.umd.js:3956:37)
    at ZoneDelegate.invokeTask (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:423:36)
    at Zone.runTask (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:191:47)
    at drainMicroTaskQueue (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:584:35)
    at ZoneTask.invoke (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:490:25)
    at data.args.(anonymous function) (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/zone.js/dist/zone-node.js:1274:25)
  rejection:
   { ReferenceError: System is not defined
       at SystemJsNgModuleLoader.loadAndCompile (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/core/bundles/core.umd.js:5736:16)
       at SystemJsNgModuleLoader.load (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/core/bundles/core.umd.js:5724:60)
       at RouterConfigLoader.loadModuleFactory (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:3418:72)
       at RouterConfigLoader.load (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:3402:52)
       at MergeMapSubscriber.project (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:1570:74)
       at MergeMapSubscriber._tryNext (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/operator/mergeMap.js:120:27)
       at MergeMapSubscriber._next (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/operator/mergeMap.js:110:18)
       at MergeMapSubscriber.Subscriber.next (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/Subscriber.js:89:18)
       at ScalarObservable._subscribe (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/observable/ScalarObservable.js:49:24)
       at ScalarObservable.Observable._trySubscribe (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/Observable.js:171:25)
     __zone_symbol__currentTask:
      ZoneTask {
        _zone: [Object],
        runCount: 0,
        _zoneDelegates: null,
        _state: 'notScheduled',
        type: 'microTask',
        source: 'Promise.then',
        data: undefined,
        scheduleFn: undefined,
        cancelFn: null,
        callback: [Function],
        invoke: [Function] } },
  promise:
   ZoneAwarePromise {
     __zone_symbol__state: 0,
     __zone_symbol__value:
      { ReferenceError: System is not defined
          at SystemJsNgModuleLoader.loadAndCompile (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/core/bundles/core.umd.js:5736:16)
          at SystemJsNgModuleLoader.load (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/core/bundles/core.umd.js:5724:60)
          at RouterConfigLoader.loadModuleFactory (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:3418:72)
          at RouterConfigLoader.load (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:3402:52)
          at MergeMapSubscriber.project (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/@angular/router/bundles/router.umd.js:1570:74)
          at MergeMapSubscriber._tryNext (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/operator/mergeMap.js:120:27)
          at MergeMapSubscriber._next (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/operator/mergeMap.js:110:18)
          at MergeMapSubscriber.Subscriber.next (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/Subscriber.js:89:18)
          at ScalarObservable._subscribe (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/observable/ScalarObservable.js:49:24)
          at ScalarObservable.Observable._trySubscribe (/Users/zeves/workspace/test2/ng4-universal-demo/node_modules/rxjs/Observable.js:171:25) __zone_symbol__currentTask: [Object] } },
  zone:
   Zone {
     _properties: { isAngularZone: true },
     _parent:
      Zone {
        _properties: {},
        _parent: null,
        _name: '<root>',
        _zoneDelegate: [Object] },
     _name: 'angular',
     _zoneDelegate:
      ZoneDelegate {
        _taskCounts: [Object],
        zone: [Circular],
        _parentDelegate: [Object],
        _forkZS: null,
        _forkDlgt: null,
        _forkCurrZone: [Object],
        _interceptZS: null,
        _interceptDlgt: null,
        _interceptCurrZone: [Object],
        _invokeZS: [Object],
        _invokeDlgt: [Object],
        _invokeCurrZone: [Circular],
        _handleErrorZS: [Object],
        _handleErrorDlgt: [Object],
        _handleErrorCurrZone: [Circular],
        _scheduleTaskZS: [Object],
        _scheduleTaskDlgt: [Object],
        _scheduleTaskCurrZone: [Circular],
        _invokeTaskZS: [Object],
        _invokeTaskDlgt: [Object],
        _invokeTaskCurrZone: [Circular],
        _cancelTaskZS: [Object],
        _cancelTaskDlgt: [Object],
        _cancelTaskCurrZone: [Circular],
        _hasTaskZS: [Object],
        _hasTaskDlgt: [Object],
        _hasTaskDlgtOwner: [Circular],
        _hasTaskCurrZone: [Circular] } },
  task:
   ZoneTask {
     _zone:
      Zone {
        _properties: [Object],
        _parent: [Object],
        _name: 'angular',
        _zoneDelegate: [Object] },
     runCount: 0,
     _zoneDelegates: null,
     _state: 'notScheduled',
     type: 'microTask',
     source: 'Promise.then',
     data: undefined,
     scheduleFn: undefined,
     cancelFn: null,
     callback: [Function],
     invoke: [Function] } }

При этом на клиентской части все нормально работает (т.е. не сервер-сайд-рендеринг)

PatrickJS commented 7 years ago

should be sort of fixed with https://github.com/gdi2290/ng4-universal-demo/commit/c13299e24bb79390b97c6a954870324b218e8f69