4 votes

Que signifie "Module {chemin} \src\app\sales\models\index.ts n'a pas d'exportations statiques" signifie-t-il et comment puis-je le corriger ?

Nous venons d'ajouter webpack 3.0.0 à notre projet angular 2. Je l'ai fait fonctionner, j'ai obtenu une amélioration des performances d'environ 20-25% et une diminution de la taille de 50% (environ). J'ai ensuite rebasé le tout sur la branche principale et j'ai commencé à avoir l'erreur.

ERROR in chunk main [initial]
[name].bundle.js
Module \src\app\sales\models\index.ts has no static exports true

Que signifie réellement cette erreur ? Je n'ai rien trouvé d'utile en ligne. Des conseils pour le réparer ?

En \src\app\sales\models\index.ts n'a pas changé depuis mon commit et contient seulement :

export * from './app-state';
export * from './purchase.model';
export * from './base.model';
export * from './view-state.model';
export * from './address';
export * from './core';
export * from './cover';
export * from './disclaimers';
export * from './family';
export * from './premium';
export * from './payments';
export * from './policy';
export * from './tracking.model';

Après avoir annulé mon rebasement initial, j'ai rebasé la branche principale sur mon travail et j'ai ensuite trouvé le commit qui a "cassé" webpack (merci à Dieu pour git bisect ) et je suis en train de réintégrer lentement les changements pour voir si je peux continuer à le faire fonctionner.

En regardant le source de webpack, l'erreur est lancée ConcatenatedModule.js en HarmonyImportSpecifierDependencyConcatenatedTemplate

    if(!Array.isArray(module.providedExports))
        throw new Error(`Module ${module.resource} has no static exports ${module.providedExports}`);

En fouillant un peu, on constate que module.providedExports est un booléen avec une valeur de true d'où l'erreur ; cependant, je n'ai pas réussi à trouver ce qui définit cette valeur.

Que signifie l'erreur ? D'autres conseils de débogage ?

0voto

J'ai aussi ce problème. Je ne sais pas pourquoi cette erreur se produit mais je l'ai résolu en remplaçant '*' par une exportation explicite.

par exemple :

avant :

export * from './foo';
export * from './bar';

après :

export {Foo1, Foo2, /*...*/} from './foo';
export {Bar1, Bar2, /*...*/} from './bar'

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