Wróć do strony głównej
Ostatnia aktualizacja:16 lip 2020

16. Dynamiczne wpisy do package.json

Schematics to nie tylko tworzenie plików w katalogu app/src. Jeśli chcemy w pełni skorzystać z tego narzędzia to na pewno warto wiedzieć, jak zautomatyzować wpisy do package.json a następnie automatycznie zainstowalować paczki.

Napiszmy Schematic, który pozwoli nam wybrać framework UI: Bootstrap, Skeleton lub Foundation. Następnie doda odpowiedni wpis do package.json i zainstaluje zależności.

Zaczynamy od nowego Schematic:

W powstałym katalogu tworzymy plik schema.json z prompterem:

Pamiętaj o dodaniu pliku schema.json do collection.json! Inaczej prompter się nie pojawi. Właśnie spędziłem 10 minut, głowiąc się, czemu prompter się nie pojawia 🙂

Teraz tworzymy utilsa, dodającego wpis do package.json:

Rule Factory:

Nowe funkcjonalności:

  • context.addTask(…) – metoda kontekstu, umożliwiająca wykonanie jakiegoś efektu ubocznego, np. instalacji zależności node, puszczenie lintera, co będzie taskiem zależy wyłącznie od nas
  • NodePackageInstallTask() – boilerplate ze Schematics, odpowidający za uruchomienie npm install

Teraz wystarczy uruchomić Schematic i cieszyć się dodaniem wpisu i automatyczną instalacją paczki:

Efekt:ui fraemwork

install package

Kod:

https://github.com/tomasznastaly/angular-schematics-tutorial/pull/10/files

TIP:

Do NodePackageInstallTask() można przekazać obiekt konfiguracyjny NodePackageInstallTaskOptions  i wskazać w nim inny manager paczek (chociażby Yarn):