J'essaie de migrer cette bibliothèque https://github.com/flauc/angular2-notifications de Angular 2+ vers Angular = 9.
L'erreur d'origine concernait le ModuleWithProviders
qui est devenu un type générique, donc je l'ai corrigé. J'ai également eu une erreur décrite ici https://github.com/angular/angular/issues/32352 que j'ai corrigé avec require('@angular/compiler-cli');
et maintenant je suis confronté à une autre erreur:
../node_modules/@angular/common/common.d.ts:115:22 - erreur NG6002: apparaît dans le NgModule.imports de SimpleNotificationsModule, mais n'a pas pu être résolu en une classe NgModule
Il est assez difficile pour moi de comprendre ce qui se passe car je n'ai jamais construit de bibliothèque auparavant, et la construction avec gulp semble être un peu hacky, car cette ligne ngc = require('@angular/compiler-cli/src/main').main
fait référence à une fonction qui n'appartient pas à l'API publique.
Modifier:
En suivant l'idée dans les commentaires (et mon propre ressenti), j'ai essayé de construire sans gorgée:
angular.json
fichierindex.ts
en public_api.ts
et simple-notifications.module.ts
Mais j'ai toujours la même erreur exacte ...
Ma tentative: https://github.com/youkouleley/angular2-notifications J'essaie de construire cela avec ng build
, les scripts dans package.json
n'ont pas été mis à jour
J'ai compris ce qui n'allait pas, j'avais un projet Angular 8 (contenant un projet de bibliothèque) que j'ai mis à niveau vers Angular 9 (avec une bibliothèque également: ng générer un noyau de bibliothèque, j'ai d'abord créé un nouveau projet angular 9 pour comparer les différences avec mon projet réalisé avec ng 8, je me rends compte qu'il manque certaines choses, voici les étapes que je suivi: - Supprimer node_modules - Supprimer le dossier dist - Dans la bibliothèque de projet Angular 9 il y a un nouveau fichier appelé: tsconfig.lib.prod.json
{
"extends": "./tsconfig.lib.json",
"angularCompilerOptions": {
"enableIvy": false
}
}
{
...
"projects": {
...
"configurations": {
"production": {
"tsConfig": "projects/core/tsconfig.lib.prod.json"
}
}
...
}
}
PS: dans ce cas, la bibliothèque est appelée "core"