web-dev-qa-db-fra.com

Créer un élément angular à partir d'un projet existant

Nous avons un projet Angular 8 qui comprend un tas de composants communs (comme datepickers, numeric inputs, ... Personnalisé). Le projet lui-même est une application Angular standard.

Nous voulons extraire certains de ces composants sous la forme Angular éléments qu'ils peuvent être utilisés dans d'autres Angular applications ou même d'autres projets qui ne sont pas Angular lié.

Est-il possible de construire le projet de manière à ce que seul le code spécifique à un seul élément Angular soit inclus dans les fichiers JavaScript générés?

J'ai besoin de quelque chose comme ceci: ng build --element myDatePicker

Cela devrait générer tous les fichiers JavaScript pour le myDatePicker-Element Uniquement avec toutes les dépendances nécessaires mais sans aucun autre code du projet (comme les autres components, modules, ...).

L'application entière devrait toujours normalement se construire lorsque j'utilise ng build.

13
Stefan

Vous pouvez créer et publier de nouvelles bibliothèques pour étendre la fonctionnalité Angular. Si vous trouvez que vous devez résoudre le même problème dans plusieurs applications (ou si vous souhaitez partager votre solution avec d'autres développeurs), vous avoir un candidat pour une bibliothèque.

La commande pour générer une bibliothèque est ng generate library my-lib

Une bibliothèque comprend généralement du code réutilisable qui définit les composants, les services et autres Angular artefacts (canaux, directives, etc.) que vous importez simplement dans un projet. Une bibliothèque est conditionnée dans un package npm pour la publication et le partage, et ce package peut également inclure des schémas qui fournissent des instructions pour générer ou transformer du code directement dans votre projet, de la même manière que la CLI crée une application squelette générique avec le composant ng generate. Un schéma qui est combiné avec une bibliothèque peut, par exemple, fournir à la CLI Angular CLI les informations dont elle a besoin pour générer un composant particulier défini dans cette bibliothèque.

Source: https://angular.io/guide/creating-libraries

0
Bytech