Skip to content

1t1sCooL/init

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Init Script - Инициализатор проектов

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

🚀 Быстрый старт

Установка

# Клонировать репозиторий
git clone <repository-url>
cd init-script

# Глобальная установка
npm install -g .

или для разработки:

npm link

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

init

📋 Возможности

🎯 Выбор фреймворка

  • 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 dev

Созданная структура проекта

my-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: создание проектов, генерация конфигов, утилиты

🔧 Настройка и разработка

Добавление нового фреймворка

  1. Добавить в lib/services/projectCreators.js
  2. Обновить lib/views/prompts.js для выбора
  3. Добавить в lib/models/projectConfig.js

Добавление новой архитектуры

  1. Добавить в lib/services/utils.js функцию createDirStructure
  2. Обновить lib/views/prompts.js выбор архитектуры

Добавление нового инструмента

  1. Добавить в lib/models/projectConfig.js пакеты
  2. Добавить в lib/services/configGenerators.js конфигурацию
  3. Обновить lib/views/prompts.js выбор

📋 Требования

  • Node.js >= 16.0.0
  • npm >= 7.0.0
  • Git (для инициализации репозитория)

🐛 Устранение проблем

Ошибка "Command failed"

  • Проверьте установлены ли необходимые CLI инструменты
  • Попробуйте обновить npm: npm install -npm@latest -g

Проблемы с TypeScript

  • Убедитесь что выбрана правильная комбинация фреймворк + сборщик
  • Для Vue CLI TypeScript недоступен (используйте Vite)

Конфликты зависимостей

  • Скрипт автоматически исправляет уязвимости
  • При проблемах очистите кэш npm: npm cache clean --force

🤝 Вклад в развитие

  1. Fork репозитория
  2. Создайте feature branch
  3. Добавьте изменения
  4. Напишите тесты
  5. Создайте Pull Request

📄 Лицензия

MIT License - см. файл LICENSE для деталей.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors