Files
create/README_RU.md

3.9 KiB
Raw Permalink Blame History

Генератор файлов из шаблонов

CLI-утилита для генерации файлов и структуры папок из настраиваемых шаблонов.

Установка

Быстрый запуск через npx

npx @gromlab/create <шаблон> <имя>

Глобальная установка ( Рекомендуется )

При глобальной установке доступна команда create с автодополнением имен шаблонов.

1. Установка:

npm i -g @gromlab/create && create install-autocomplete

2. Перезагрузка оболочки:

# macOS (zsh)
source ~/.zshrc

# Linux (bash)
source ~/.bashrc

# Linux (fish)
exec fish

Использование

create <шаблон> <имя> [путь] [опции]

Если [путь] не указан, файлы создаются в директории, где запущен CLI.

Пример

# Создать компонент из шаблона
create component Button

# Указать папку вывода позиционно
create component Button src/components

Шаблоны

Шаблоны хранятся в папке .templates/ в корне проекта. Каждая подпапка — отдельный шаблон.

Создание шаблона

  1. Создайте папку в .templates/ с именем шаблона
  2. Добавьте файлы и папки, используя переменные в именах и содержимом
  3. Переменные заключаются в двойные фигурные скобки: {{переменная}}

Количество переменных не ограничено — используйте любые имена.

Структура

.templates/
├── component/
│   └── {{name.pascalCase}}/
│       ├── index.ts
│       ├── {{name.pascalCase}}.tsx
│       └── {{name.pascalCase}}.module.css
└── zustand-store/
    └── {{name.camelCase}}Store/
        ├── index.ts
        ├── {{name.camelCase}}Store.ts
        └── {{name.camelCase}}Store.type.ts

Переменные

Переменные подставляются в имена файлов/папок и в содержимое файлов. В шаблоне можно использовать любые переменные — при генерации CLI потребует значения для всех найденных.

  • name — обязательная переменная, задается позиционным аргументом
  • Произвольные переменные передаются через флаги: --author "John Doe"

Модификаторы регистра:

Синтаксис Результат для myButton
{{name}} myButton
{{name.pascalCase}} MyButton
{{name.camelCase}} myButton
{{name.kebabCase}} my-button
{{name.snakeCase}} my_button
{{name.screamingSnakeCase}} MY_BUTTON
# Шаблон с переменными {{name}} и {{author}}
create component Button --author "John Doe"

Пример содержимого шаблона

// {{name.pascalCase}}.tsx
import styles from './{{name.pascalCase}}.module.css'

export const {{name.pascalCase}} = () => {
  return <div className={styles.wrapper}>{{name.pascalCase}}</div>
}

Опции

Опция Описание
--overwrite Перезаписать существующие файлы
--skip-update Не проверять обновления CLI
--<переменная> <значение> Произвольная переменная шаблона