Byndyusoft / nest-template

Base template for NestJS applications

Home Page:https://github.com/Byndyusoft/nest-template/wiki

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Automatic set package.json name after creating new repository from template

KillWolfVlad opened this issue · comments

+ setup repository
+ license
+ author
+ README for service

Yeoman?

cra/ng/nest cli as example

В течении двух следующих недель @argus-xd списывается с @KillWolfVlad и решают, что делаем дальше

Make research and compression table + MVP for:

  • Yeoman
  • nest-cli
  • self-maded cli
  • ???

Ветка - https://github.com/Byndyusoft/nest-template/tree/feature/issue-(48-72)-yeoman
В ветке вырезан typeOrm - поэтому можно посмотреть работу генераторов
Добавлены два пакета с разной реализацией cli
Реализация
yeoman https://github.com/argus-xd/yeoman-generators.git
schematic https://github.com/argus-xd/nestjs-schema-user.git

Пример команд

для yeoman
yo bs:pg-module # Генератор модуля typeOrm
yo bs:change-name # Замена поля name во всех package.json
где первый аргумент bs - это имя пакета а второй имя вызываемой cli - команды

Для nest schematic
nest g pg-module -c schema-user # Генератор модуля typeOrm
nest g change-name -c schema-user # Замена поля name во всех package.json
Здесь принцип вызова генератора аналогичен нативному nestJs, за исключением добавления -c schema-user ссылки на пакет, откуда вызывать cli команду

Код генераторов
yeoman - https://github.com/argus-xd/yeoman-generators/blob/master/generators/pg-module/index.js

schematic - https://github.com/argus-xd/nestjs-schema-user/blob/main/src/pg-module/index.ts

Схемы(schematic) для nestJs берут свои корни от Angualar - поэтому можно использовать все сопутствующие утилиты для работы с файлами при разработке генераторов или сложных скриптов

Решили использовать nest-cli и кастомный schematics для nest-template

Задача на создание нового пакета https://github.com/Byndyusoft/board-and-discussion/issues/128