ОШИБКА {Ошибка: Uncaught (в обещании): Ошибка: не удается найти модуль "./.../.module.ngfactory" - PullRequest
0 голосов
/ 08 сентября 2018

Я выполнил шаги рендеринга на стороне сервера с Universal, опубликованные в документации angularfire2:

https://github.com/angular/angularfire2/blob/master/docs/server-side-rendering.md

Мне удалось собрать все приложение без ошибок, но когда я запускал приложение, я получил следующую ошибку:

ERROR { Error: Uncaught (in promise): Error: Cannot find module "./views/sessions/sessions.module.ngfactory". Error: Cannot find module "./views/sessions/sessions.module.ngfactory". at eval (webpack:///./src_lazy_namespace_object?:5:11) at ZoneDelegate.invoke (webpack:///./node_modules/zone.js/dist/zone-node.js?:387:26) at Object.onInvoke (webpack:///./node_modules/@angular/core/fesm5/core.js?:4122:33) at ZoneDelegate.invoke (webpack:///./node_modules/zone.js/dist/zone-node.js?:386:32) at Zone.run (webpack:///./node_modules/zone.js/dist/zone-node.js?:137:43) at eval (webpack:///./node_modules/zone.js/dist/zone-node.js?:871:34) at ZoneDelegate.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:420:31) at Object.onInvokeTask (webpack:///./node_modules/@angular/core/fesm5/core.js?:4113:33) at ZoneDelegate.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:419:36) at Zone.runTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:187:47) at resolvePromise (webpack:///./node_modules/zone.js/dist/zone-node.js?:813:31) at resolvePromise (webpack:///./node_modules/zone.js/dist/zone-node.js?:770:17) at eval (webpack:///./node_modules/zone.js/dist/zone-node.js?:872:17) at ZoneDelegate.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:420:31) at Object.onInvokeTask (webpack:///./node_modules/@angular/core/fesm5/core.js?:4113:33) at ZoneDelegate.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:419:36) at Zone.runTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:187:47) at drainMicroTaskQueue (webpack:///./node_modules/zone.js/dist/zone-node.js?:594:35) at ZoneTask.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:499:21) at Server.ZoneTask.invoke (webpack:///./node_modules/zone.js/dist/zone-node.js?:484:48) rejection: { Error: Cannot find module "./views/sessions/sessions.module.ngfactory". at eval (webpack:///./src_lazy_namespace_object?:5:11) at ZoneDelegate.invoke (webpack:///./node_modules/zone.js/dist/zone-node.js?:387:26) at Object.onInvoke (webpack:///./node_modules/@angular/core/fesm5/core.js?:4122:33) at ZoneDelegate.invoke (webpack:///./node_modules/zone.js/dist/zone-node.js?:386:32) at Zone.run (webpack:///./node_modules/zone.js/dist/zone-node.js?:137:43) at eval (webpack:///./node_modules/zone.js/dist/zone-node.js?:871:34) at ZoneDelegate.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:420:31) at Object.onInvokeTask (webpack:///./node_modules/@angular/core/fesm5/core.js?:4113:33) at ZoneDelegate.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:419:36) at Zone.runTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:187:47) code: 'MODULE_NOT_FOUND' }, promise: ZoneAwarePromise { __zone_symbol__state: 0, __zone_symbol__value: { Error: Cannot find module "./views/sessions/sessions.module.ngfactory". at eval (webpack:///./src_lazy_namespace_object?:5:11) at ZoneDelegate.invoke (webpack:///./node_modules/zone.js/dist/zone-node.js?:387:26) at Object.onInvoke (webpack:///./node_modules/@angular/core/fesm5/core.js?:4122:33) at ZoneDelegate.invoke (webpack:///./node_modules/zone.js/dist/zone-node.js?:386:32) at Zone.run (webpack:///./node_modules/zone.js/dist/zone-node.js?:137:43) at eval (webpack:///./node_modules/zone.js/dist/zone-node.js?:871:34) at ZoneDelegate.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:420:31) at Object.onInvokeTask (webpack:///./node_modules/@angular/core/fesm5/core.js?:4113:33) at ZoneDelegate.invokeTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:419:36) at Zone.runTask (webpack:///./node_modules/zone.js/dist/zone-node.js?:187:47) code: 'MODULE_NOT_FOUND' } }, zone: Zone { _properties: { isAngularZone: true }, _parent: Zone { _properties: {}, _parent: null, _name: '', _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: ZoneAwarePromise { __zone_symbol__state: 0, __zone_symbol__value: [Object] }, scheduleFn: undefined, cancelFn: null, callback: [Function], invoke: [Function] } }

Я проверял, и ошибка в файле webpack.server.config.js С подключаемым модулем WebPack new Webpack.ContextReplacementPlugin Это вызывает конфликт с очень ленивой нагрузкой.

Действия по настройке и воспроизведению

Я создал хранилище для вас, чтобы вы могли воспроизвести эту ошибку, которую я комментировал вам ранее: https://github.com/IngAjVillalon/Angular-Universal-6-Server-Side-Render Вы можете выполнить:

npm install

позже

npm run build: ssr && npm run serve: ssr.

и приложение будет работать нормально, но при использовании приложения появляется ошибка.

Не могли бы вы мне помочь, расскажите нам, какие еще есть альтернативы для запуска ленивой нагрузки при рендеринге на стороне сервера с Universal?

1 Ответ

0 голосов
/ 09 сентября 2018

Для отложенной загрузки вам необходимо передать LAZY_MODULE_MAP поставщикам фабрики визуализации. Узнайте, что AngularFire2 сделал в новых документах по SSR, чтобы ознакомиться с ними в Начало работы с Angular Universal :

У них также есть проект, над которым я работаю, который реализует SSR с AOT и ленивыми модулями: jamesdaniels / AngularFireDocs

...