J'ai mis à niveau une application Angular de la v8 à la v9. Le projet importe une bibliothèque d'interface utilisateur personnalisée en utilisant Angular 8 et moment.js.
Quand je le construis:
WARNING in Entry point '@myLib/catalogue' contains deep imports into
'/Users/xyz/Projects/forms-frontend/node_modules/moment/locale/de'.
This is probably not a problem, but may cause the compilation of entry points to be out of order.
Dans le @myLib/catalogue.js
fichier de la bibliothèque (dans le dossier node_modules), la locale moment.js DE est importée comme suit:
import 'moment/locale/de';
ERROR in Failed to compile entry-point @myLib/catalogue (es2015 as esm2015) due to compilation errors:
node_modules/@myLib/catalogue/fesm2015/catalogue.js:213:26 - error NG1010: Value at position 2 in the NgModule.imports of FormInputModule is not a reference: [object Object]
213 imports: [
~
214 CommonModule,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
219 TranslateModule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
220 ],
~~~~~~~~~~~~~~~~~
Le texte de l'avertissement semble expliquer exactement l'erreur de compilation, où la position (2 dans ce cas) est hors de portée du tableau des importations.
J'ai vu différents articles/ problèmes github sur les liens profonds, mais aucune solution de travail.
Dans mon cas, je pense qu'il y avait des incompatibilités entre certaines des bibliothèques angular qui ont été importées. Je pense que j'ai précédemment modifié manuellement @angular/material
à 9.2.3
sans heurter les autres angular bibliothèques.
Lorsque j'ai créé un nouveau référentiel en utilisant: ng new test-ng9
puis ajouté angular matériel ng add @angular/material
, il n'y a eu aucun problème de compilation.
J'ai donc pris les dépendances que le angular cli inclus dans le dépôt temporaire et remplacé celles de mon référentiel existant. Ensuite, cela a bien fonctionné.
Avant:
"@angular/animations": "~9.1.6",
"@angular/cdk": "9.1.1",
"@angular/common": "~9.1.1",
"@angular/compiler": "~9.1.1",
"@angular/core": "~9.1.1",
"@angular/forms": "~9.1.1",
"@angular/material": "9.2.3",
"@angular/platform-browser": "~9.1.1",
"@angular/platform-browser-dynamic": "~9.1.1",
"@angular/router": "~9.1.1",
Après:
"@angular/animations": "~9.1.6",
"@angular/cdk": "9.1.1",
"@angular/common": "~9.1.6",
"@angular/compiler": "~9.1.6",
"@angular/core": "~9.1.6",
"@angular/forms": "~9.1.6",
"@angular/material": "^9.2.4",
"@angular/platform-browser": "~9.1.6",
"@angular/platform-browser-dynamic": "~9.1.6",
"@angular/router": "~9.1.6",
# 2 m'est arrivé après avoir accidentellement utilisé npm link
dans le dossier d'un projet au lieu de son dossier dist.