Полнофункциональный CLI инструмент для быстрой инициализации проектов с выбором фреймворка, языка, архитектуры и дополнительных инструментов.
# Клонировать репозиторий
git clone <repository-url>
cd init-script
# Глобальная установка
npm install -g .или для разработки:
npm linkinit- React - с Create React App или Vite
- Vue.js - с Vue CLI или Vite
- Angular - с Angular CLI
- Next.js - с полной конфигурацией
- JavaScript - для простых проектов
- TypeScript - с полной настройкой (для React и Vue с Vite)
- Стандартная - components, pages, utils, hooks
- По фичам (FSD) - app, pages, widgets, features, entities, shared
- Атомарный дизайн - atoms, molecules, organisms, templates
- Axios - HTTP клиент
- Zustand - легковесное управление состоянием
- Redux - управление состоянием с Toolkit
- ESLint - линтер с правилами для React/TypeScript
- Prettier - форматтер кода
- Husky - git hooks для pre-commit
- Алиасы путей - @/src для Vite проектов
- TypeScript конфигурация - с алиасами и путями
- Git инициализация - с начальным коммитом
- Исправление уязвимостей - npm audit fix
$ init
Добро пожаловать в инициализатор проектов!
? Выберите фреймворк: React
? Выберите сборщик для React: Vite (быстрый)
? Выберите язык программирования: TypeScript
? Выберите архитектуру приложения: По фичам (features/)
? Использовать алиасы путей (@/ для src)? Yes
? Введите имя проекта: my-awesome-app
? Выберите дополнительные библиотеки:
◉ typescript
◯ axios
◯ zustand
● redux
◯ eslint
◯ prettier
◯ husky
⠋ Создание проекта my-awesome-app с react...
✔ Проект создан!
Установка дополнительных библиотек...
Инициализация Husky...
Создание структуры папок...
Настройка алиасов путей...
Проект успешно создан!
Чтобы перейти в проект: cd my-awesome-app
Запустите проект: npm run devmy-awesome-app/
├── src/
│ ├── app/ # Приложение
│ ├── pages/ # Страницы
│ ├── widgets/ # Виджеты
│ ├── features/ # Фичи
│ ├── entities/ # Сущности
│ ├── shared/ # Общее
│ └── main.tsx # Точка входа
├── vite.config.ts # Конфигурация Vite с алиасами
├── tsconfig.json # TypeScript с путями
├── package.json # Зависимости
└── .git/ # Git репозиторий
Скрипт построен по принципу MVC (Model-View-Controller):
lib/
├── models/ # Конфигурации проектов
├── views/ # Вывод и ввод данных
├── controllers/ # Управление процессом
└── services/ # Бизнес-логика
- Models: конфигурации пакетов и команд
- Views: консольный вывод и интерактивные вопросы
- Controllers: оркестрация процесса создания
- Services: создание проектов, генерация конфигов, утилиты
- Добавить в
lib/services/projectCreators.js - Обновить
lib/views/prompts.jsдля выбора - Добавить в
lib/models/projectConfig.js
- Добавить в
lib/services/utils.jsфункциюcreateDirStructure - Обновить
lib/views/prompts.jsвыбор архитектуры
- Добавить в
lib/models/projectConfig.jsпакеты - Добавить в
lib/services/configGenerators.jsконфигурацию - Обновить
lib/views/prompts.jsвыбор
- Node.js >= 16.0.0
- npm >= 7.0.0
- Git (для инициализации репозитория)
- Проверьте установлены ли необходимые CLI инструменты
- Попробуйте обновить npm:
npm install -npm@latest -g
- Убедитесь что выбрана правильная комбинация фреймворк + сборщик
- Для Vue CLI TypeScript недоступен (используйте Vite)
- Скрипт автоматически исправляет уязвимости
- При проблемах очистите кэш npm:
npm cache clean --force
- Fork репозитория
- Создайте feature branch
- Добавьте изменения
- Напишите тесты
- Создайте Pull Request
MIT License - см. файл LICENSE для деталей.