J'ai deux Angular projets qui partagent du code commun via une bibliothèque Angular). J'ai exécuté ng update
Dans les deux projets et mon Angular pour essayer de mettre à niveau de Angular 8 à 9. Les scripts de migration ont changé mon fichier tsconfig.app.json
De
"include": [
"../src/**/*"
]
à
"files": [
"main.ts",
"polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
Guide de migration Angular états
Nous avons mis à jour le tsconfig.app.json pour limiter les fichiers compilés. Si vous comptez sur d'autres fichiers inclus dans la compilation, comme un fichier typings.d.ts, vous devez l'ajouter manuellement à la compilation.
Lorsque j'ai essayé d'exécuter mon application (ng serve
À partir de l'un des projets qui consomme la bibliothèque), j'ai eu une erreur
ERROR in Failed to compile entry-point my-common-library (module as esm5) due to compilation errors:
node_modules/my-common-library/fesm5/my-common-library.js:5207:30 - error NG1010: Value at position 4 in the NgModule.imports of MyCommonLibraryModule is not a reference: [object Object]
5207 imports: [
~
5208 CommonModule,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
5225 MatAutocompleteModule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5226 ],
~~~~~~~~~~~~~~~~~~~~~
Si je remplace le tsconfig.app.json
De ma bibliothèque, revenez à
"include": [
"../src/**/*"
]
alors tout fonctionne très bien. Alors je suppose que mes questions sont
ng update
N'est-il pas destiné à fonctionner avec des bibliothèques?Selon les documents https://update.angular.io/#8.0:9. vous devez importer profondément à partir du composant spécifique
import {MatAutocompleteModule} from '@angular/material/autocomplete';
@NgModule({
imports: [
MatAutocompleteModule
]