Пользовательские шаблоны уровня проекта для компонентов angular, сгенерированные с помощью angular-cli

Как добавить схемы пользовательских компонентов angular в существующий проект?

Я бы хотел, например, Шаблоны компонентов my-page, которые будут копировать существующие файлы \node_modules\@schematics\angular\component\, но с отредактированными шаблонами.

Я ожидаю, что это будет достижимо через angular-cli, например. Команда ng g my-page pagename с атрибутом схемы.

В настоящее время я модифицировал код для существующих схем angular под \node_modules\, поэтому для меня это отлично работает (до следующей установки пакета), но я хотел бы поделиться этим с командой, чтобы все использовали предопределенные шаблоны, которые будут храниться, например, в src\team-schematics\.

Как мне этого добиться?

Я попытался создать новую схему через schematics schematic --name my-schematic, скопировал угловую схему в \ClientApp\src\app\my-schematic\\ и попытался запустить $ ng generate my-page --collection \ClientApp\src\app\my-schematic, но на данный момент безуспешно:

Error: Could not find module "\\ClientApp\\src\\app\\my-schematic\\" from "C:\\Users\\xxx\\Projects\\yyy

Я слежу за этим medium.com/rocket-fuel/…. После того, как у вас есть схема, не забудьте построить ее: npm запустить сборку и в каталоге вашего нового приложения создайте путь ссылки npm-тоже-ваша-схема, затем вы можете выполнить ng g simple-schematic: simple-schematic --name = "какое-то имя". ПРИМЕЧАНИЕ: мне нужно сделать npm install перед построением схемы.

Eliseo 29.01.2019 20:30

Комментарий IMO @Eliseo должен быть принят ответом.

MTJ 30.01.2019 07:48

@Eliseo после этой статьи я получаю сообщение об ошибке Cannot find schematic X in collection X-collection

Kyle V. 30.01.2019 16:19

Я скачиваю github: github.com/jonbcampos/schematics и работаю у меня (Angular 7). Я не знаю, что может случиться, кстати проверьте packgaje.json и collection.json

Eliseo 30.01.2019 16:36

Я создал собственную схему с именем schematics, и если я хочу ее сгенерировать с помощью ng g schematics:schematics --name my-name, она ничего не генерирует.

laprof 24.06.2019 10:46

Возможно, это руководство может вам помочь: indepth.dev/posts/1438/…

shhdharmen 13.03.2021 09:08
4
6
1 158
2

Ответы 2

Что касается Angular CLI, у нас может быть только одна схема. Возможно, вы можете создавать собственные схемы '@ foo / schematics' и расширять @ angular / schematics в angular.json и настраивать схемы в соответствии с вашими потребностями.

ng new C myComponent --collection=@foo/schematics

Вы не должны изменять основные схемы. С другой стороны, вы можете создать свою собственную схему.

Создание схемы - это пошаговый процесс. Вы можете найти то же самое на Схемы - Введение.

Кто бы ни проголосовал против моего сообщения, спасибо за ваше время и голосование. Было бы здорово, если бы вы могли добавить комментарий о том, как я могу улучшить свой ответ.

shhdharmen 30.01.2019 18:43

Я этого не делал, но представляю, что это двояко: 1. Ваш ответ - это просто ссылка, но у вас должно быть больше что-то, чтобы это не просто перенаправление (stackoverflow.com/help/how-to-answer). И 2. эта ссылка предназначена для создания нового схематического проекта, а не для добавления его в существующий проект.

John Neuhaus 12.03.2021 18:09

Другие вопросы по теме