2 votes

Angular 4 : Pourquoi la compilation d'un projet avec mon paquetage hébergé par npm déclenche une erreur 'makeDecorator' à la compilation ?

J'ai eu cette erreur depuis que j'ai commencé à coder mes deux paquets npm, et je n'arrive pas à trouver une solution pour ce problème. A chaque fois que j'exécute ng serve, j'ai cette erreur, et ensuite si j'ajoute juste un caractère espace et Ctrl+S un fichier (pour exécuter une compilation Angular-CLI) Il diseapper ! Comment résoudre ce problème ?

Erreur :

ERROR dans Erreur rencontrée lors de la résolution statique des valeurs de symboles. Appel à fonction 'makeDecorator', les appels de fonction ne sont pas pris en charge. Pensez à remplacer la fonction ou lambda par une référence à une fonction exportée exportée, en résolvant le symbole NgModule dans D:/GitHub/angular-npm/ngx-heyl-modal/demo/node_modules/ngx-heyl-snackbar/node_modules/@angular/core/src/metadata/ng_module.d.ts, en résolvant le symbole NgModule dans D:/GitHub/angular-npm/ngx-heyl-modal/demo/node_modules/ngx-heyl-snackbar/node_modules/@angular/core/src/metadata.d.ts, résolvant le symbole NgModule dans D:/GitHub/angular-npm/ngx-heyl-modal/demo/node_modules/ngx-heyl-snackbar/node_modules/@angular/core/src/core.d.ts, résolution du symbole NgModule dans D:/GitHub/angular-npm/ngx-heyl-modal/demo/node_modules/ngx-heyl-snackbar/node_modules/@angular/core/index.d.ts, résolution du symbole SnackbarModule dans D:/GitHub/angular-npm/ngx-heyl-modal/demo/node_modules/ngx-heyl-snackbar/index.ts, résolution du symbole SnackbarModule dans D:/GitHub/angular-npm/ngx-heyl-modal/demo/node_modules/ngx-heyl-snackbar/index.ts

mes paquets : (Avec toutes mes sources sur Git)

https://www.npmjs.com/package/ngx-heyl-modal

https://www.npmjs.com/package/ngx-heyl-snackbar

EDIT :

J'ai essayé d'utiliser le lien npm avec un projet simple : service vide, composant vide (juste un div dans le fichier html, pas d'entrée, pas de fonctions du tout) et le problème est toujours là. Je pense que c'est à cause du NgModule, peut-être que je me trompe dans la façon dont je l'ai écrit ? ou dans mon package.json ?

2voto

yurzui Points 85802

Vous ne devez pas expédier node_modules dans votre paquetage.

Vous devez garder à l'esprit que vous écrivez une bibliothèque pour le projet Angular. Comme le projet lui-même doit avoir le noyau d'Angular comme dépendance, la bibliothèque ne doit pas inclure les sources d'Angular dans les bundles qu'elle produit. Pour ce faire, vous devez configurer les dépendances des pairs dans le fichier package.json.

{
  ...  
  "peerDependencies": {
    "@angular/common": "^4.0.0",
    "@angular/core": "^4.0.0"
  }
  ...
}

Le moyen le plus simple de créer une bibliothèque angulaire compatible avec AOT est d'exécuter ngc mais je vous conseille de suivre Format des paquets Angular 4

Voici ma bibliothèque de test https://www.npmjs.com/package/@zuz/lib ( source , peerDependencies en paquet.json )

Voir aussi ces liens pour des solutions possibles

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