feat: initial dev-configs monorepo

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>
This commit is contained in:
2026-03-16 23:40:22 +03:00
commit cf64bf6d7d
38 changed files with 11287 additions and 0 deletions

58
CLAUDE.md Normal file
View File

@ -0,0 +1,58 @@
# 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)