Shared configs for TypeScript projects: ESLint, Prettier, TypeScript, Vite, Jest, Playwright, Knip. Published as @vigdorov/* npm packages to Gitea registry. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
59 lines
2.3 KiB
Markdown
59 lines
2.3 KiB
Markdown
# dev-configs
|
||
|
||
Monorepo с общими конфигами для TypeScript-проектов. Публикуется как набор npm-пакетов в Gitea npm registry.
|
||
|
||
## Технологии
|
||
|
||
- **Monorepo:** npm workspaces
|
||
- **Сборка:** TypeScript (tsc)
|
||
- **Registry:** Gitea npm (`@vigdorov/` scope)
|
||
- **CI:** Drone CI, тип `library`
|
||
|
||
## Пакеты
|
||
|
||
| Пакет | Тип | Описание |
|
||
|-------|-----|----------|
|
||
| `@vigdorov/prettier-config` | Статичный объект | Prettier конфиг |
|
||
| `@vigdorov/eslint-config` | Функции-генераторы (base, react, node) | ESLint 9 flat config |
|
||
| `@vigdorov/typescript-config` | JSON для extends (base.json, react.json) | TSConfig |
|
||
| `@vigdorov/vite-config` | Функции-генераторы (spa, library) | Vite конфиг |
|
||
| `@vigdorov/jest-config` | Функция-генератор (node/jsdom) | Jest + @swc/jest |
|
||
| `@vigdorov/playwright-config` | Функция-генератор (CI-aware) | Playwright e2e |
|
||
| `@vigdorov/knip-config` | Функция-генератор | Dead code detection |
|
||
|
||
## Структура
|
||
|
||
```
|
||
packages/
|
||
├── eslint/ → @vigdorov/eslint-config
|
||
├── prettier/ → @vigdorov/prettier-config
|
||
├── typescript/ → @vigdorov/typescript-config (без сборки, JSON-файлы)
|
||
├── vite/ → @vigdorov/vite-config
|
||
├── jest/ → @vigdorov/jest-config
|
||
├── playwright/ → @vigdorov/playwright-config
|
||
└── knip/ → @vigdorov/knip-config
|
||
```
|
||
|
||
## Команды
|
||
|
||
```bash
|
||
npm run build # Собрать все пакеты
|
||
npm run test # Тесты всех пакетов
|
||
npm run lint # Линтинг всех пакетов
|
||
npm run check # Knip проверка всех пакетов
|
||
|
||
# Поднятие версии
|
||
npm version patch -w packages/eslint
|
||
npm version minor -w packages/vite
|
||
```
|
||
|
||
## Версионирование
|
||
|
||
- Semver, независимое для каждого пакета
|
||
- Разработка в feature-ветке → merge в main → поднять версию → push
|
||
- CI публикует только пакеты с новой версией (сравнение с registry)
|
||
|
||
## Требования
|
||
|
||
Полные требования: [docs/requirements.md](docs/requirements.md)
|