#angular-schematics
#angular-schematics
Вопрос:
Не уверен, что полностью понимаю концепцию Angular Schematics. Более точно, как выполнить схему. Читая некоторые статьи, я увидел, что мы должны использовать ng g my-schematics-collection:simple-schematic --name="some name"
. В других статьях, которые я видел schematics my-schematics-collection:simple-schematic --name="Angular Community"
. И снова, используя NX, они просто используются ng g component
, точно так же, как базовые схемы Angular для создания компонента. Как они могут перезаписать существующие угловые схемы? Тот факт, что они не указывают на свою собственную коллекцию schematics, меня смущает.
Может кто-нибудь объяснить, что использовать для каких случаев использования? Спасибо!
Ответ №1:
Angular schematics — это просто библиотека. Существуют разные инструменты, которые используют библиотеку. Вы можете прочитать больше о том, что ожидается от инструментария в документах.
При использовании ng g my-schematics-collection:simple-schematic --name="some name"
вы используете инструментарий, предоставленный angular-cli
.
При использовании schematics my-schematics-collection:simple-schematic --name="Angular Community"
вы используете справочный инструмент cli.
Оба инструмента используют разрешение модуля nodejs для поиска файлов схем. Так my-schematics-collection
на самом деле называется node_module
. Например, угловые схемы по умолчанию определены в этом модуле. Обратите внимание, что в package.json
есть ключ с именем schematics
. Это будет указывать на файл конфигурации json.
Итак, в общем, если вы используете Angular, придерживайтесь инструментов angular-cli. Если вы разрабатываете пользовательские схемы, ссылочный CLI полезен для тестирования. Если вы не возражаете против написания некоторых пользовательских инструментов, вы можете просто импортировать библиотеку напрямую.
Ответ №2:
Это очень легко понять, когда вы разрабатываете схемы, которые вы хотели бы протестировать, используя schematics
word, и вам нужно указать эти вещи: schematics [schematic-path-of-your-project]:[schematic-name] --[flags]
Например:
-
schematics .:add-custom-component --debug=false
—> это, если вы создаете проект, подобный библиотеке, и вы хотели бы протестировать его внутри проекта. -
schematics ./projects/schematics:add-custom-component --debug=false
—> это, если вы создаете схемы внутри своего проекта angular.
Однако, когда вы уже закончили свои схемы, вам нужно сделать разные вещи, зависит от того, создаете ли вы библиотеку или создаете схемы внутри проекта:
- Если вы создаете схемы, подобные библиотеке, вам нужно создать схему с именем: ng-add, когда вы находитесь в проекте, в который хотите ее добавить, вам нужно выполнить:
ng add @hyperxq/schematics
; - Если вы создаете схему внутри своего проекта, вам необходимо скомпилировать схему и в вашем проекте angular выполнить:
npm link ./projects/schematics/dist
. После этого вам нужно только выполнить:ng g @hyperxq/schematics:add-custom-component
.
🙂 Я надеюсь, что это поможет вам разобраться в схемах.