4 votes

Impossible de lire la propriété 'moduleType' d'undefined pendant que npm start

Je travaille sur une application qui prend en charge le rendu côté serveur avec angular cli (1.7.3).

En exécutant la commande npm start Le build sera créé avec succès mais lors de l'exécution de l'application sur le serveur, il y a une erreur qui se présente comme suit

Impossible de lire la propriété 'moduleType' d'undefined.

Je suppose que l'erreur vient de server.ts où je suis en train d'importer AppServerModuleNgFactory comme ceci :

const {  AppServerModuleNgFactory } = (module as any).exports;
// import { AppServerModuleNgFactory } from '../dist/ngfactory/src/app/app.server.module.ngfactory'

PS : Cela fonctionnait bien avec angular 4.4.0 mais pas avec 5.2.0

Veuillez me faire savoir si vous avez besoin de plus d'informations.

1voto

Pardeep Jain Points 4603

J'ai résolu ce problème après des heures de recherche sur Internet.

En fait, le problème est que dans ng5, ils ont changé certaines configurations pendant la construction, comme la suppression de ngfactory, etc. donc server.ts est incapable de trouver AppServerModuleNgFactory pendant le rendu côté serveur.

J'ai donc dû changer l'emplacement du nouveau chemin si non trouvé comme ceci

const {  AppServerModuleNgFactory } = (module as any).exports;
....
some code 
....

if ( typeof(AppServerModuleNgFactory) == 'undefined') {
  const { AppServerModuleNgFactory } = require('../dist/out-tsc/src/app/app.server.module.ngfactory');
  renderModuleFactory(AppServerModuleNgFactory, opts)
  .then(html => callback(null, html));
} else {
  renderModuleFactory(AppServerModuleNgFactory, opts)
  .then(html => callback(null, html));
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X