docs: update requirements and lock file
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@ -117,150 +117,43 @@ Monorepo библиотека с общими конфигами для TypeScri
|
|||||||
|
|
||||||
**Тип:** JSON-файлы для extends (без сборки)
|
**Тип:** JSON-файлы для extends (без сборки)
|
||||||
|
|
||||||
**base.json:**
|
**base.json** — общие настройки для всех TS-проектов:
|
||||||
```json
|
- strict: true, target: ES2022, module: ESNext, moduleResolution: bundler
|
||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"strict": true,
|
|
||||||
"target": "ES2022",
|
|
||||||
"module": "ESNext",
|
|
||||||
"lib": ["ES2022"],
|
|
||||||
"moduleResolution": "bundler",
|
|
||||||
"resolveJsonModule": true,
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"noImplicitReturns": true,
|
|
||||||
"noFallthroughCasesInSwitch": true,
|
|
||||||
"noUnusedLocals": false,
|
|
||||||
"allowUnreachableCode": false,
|
|
||||||
"allowUnusedLabels": false,
|
|
||||||
"allowSyntheticDefaultImports": true,
|
|
||||||
"removeComments": true,
|
|
||||||
"sourceMap": true,
|
|
||||||
"incremental": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"isolatedModules": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**react.json:**
|
**react.json** — для React + Vite:
|
||||||
```json
|
- extends base + DOM libs, jsx: react-jsx, noEmit, allowImportingTsExtensions
|
||||||
{
|
|
||||||
"extends": "./base.json",
|
**node.json** — для NestJS/Node:
|
||||||
"compilerOptions": {
|
- extends base + commonjs module, node moduleResolution, decorators support
|
||||||
"lib": ["DOM", "DOM.Iterable", "ES2022"],
|
|
||||||
"jsx": "react-jsx"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### @vigdorov/vite-config
|
### @vigdorov/vite-config
|
||||||
|
|
||||||
**Тип:** Функции-генераторы
|
**Тип:** Функции-генераторы
|
||||||
**Пресеты:** `spa`, `library`
|
**Пресеты:** `spa`, `library`
|
||||||
|
|
||||||
**spa:**
|
**spa** — подключает React plugin, алиасы, порт, proxy
|
||||||
```ts
|
**library** — lib mode сборка, external зависимости, форматы es/cjs
|
||||||
import {spa} from '@vigdorov/vite-config';
|
|
||||||
|
|
||||||
export default spa({
|
Для кастомизации сверх параметров (define, manualChunks) — использовать `mergeConfig` из vite.
|
||||||
port: 5176,
|
|
||||||
aliases: {'@': 'src'},
|
|
||||||
proxy: {'/api': 'http://localhost:3003'},
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**library:**
|
|
||||||
```ts
|
|
||||||
import {library} from '@vigdorov/vite-config';
|
|
||||||
|
|
||||||
export default library({
|
|
||||||
entry: 'src/index.ts',
|
|
||||||
name: 'my-lib',
|
|
||||||
aliases: {'@': 'src'},
|
|
||||||
external: ['react', 'react-dom'],
|
|
||||||
formats: ['es', 'cjs'],
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Генератор spa:**
|
|
||||||
- Подключает @vitejs/plugin-react
|
|
||||||
- Преобразует aliases в resolve.alias с абсолютными путями
|
|
||||||
- Настраивает server.port и server.proxy
|
|
||||||
- Дефолты: base: "/", outDir: "dist"
|
|
||||||
|
|
||||||
**Генератор library:**
|
|
||||||
- Настраивает build.lib (entry, name, formats)
|
|
||||||
- rollupOptions.external — исключает peer-зависимости
|
|
||||||
- fileName: index.mjs / index.cjs
|
|
||||||
- Алиасы работают так же как в SPA
|
|
||||||
|
|
||||||
### @vigdorov/jest-config
|
### @vigdorov/jest-config
|
||||||
|
|
||||||
**Тип:** Функция-генератор
|
**Тип:** Функция-генератор
|
||||||
|
- environment: node/jsdom
|
||||||
```ts
|
- aliases: единый формат с Vite
|
||||||
import {jestConfig} from '@vigdorov/jest-config';
|
|
||||||
|
|
||||||
export default jestConfig({
|
|
||||||
environment: 'jsdom',
|
|
||||||
aliases: {'@': 'src'},
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Базовый конфиг:**
|
|
||||||
- clearMocks: true
|
|
||||||
- collectCoverage: true
|
|
||||||
- coverageReporters: ['html', 'text', 'text-summary', 'lcov']
|
|
||||||
- coverageDirectory: 'coverage'
|
|
||||||
- testMatch: ['**/__tests__/**/*.(j|t)s?(x)', '**/?(*.)+(spec|test).(j|t)s?(x)']
|
|
||||||
- testPathIgnorePatterns: ['/node_modules/', '/dist/']
|
|
||||||
- transform: @swc/jest
|
- transform: @swc/jest
|
||||||
|
|
||||||
**Параметры:**
|
|
||||||
- environment: 'node' | 'jsdom'
|
|
||||||
- aliases: Record<string, string> — преобразуется в moduleNameMapper
|
|
||||||
|
|
||||||
### @vigdorov/playwright-config
|
### @vigdorov/playwright-config
|
||||||
|
|
||||||
**Тип:** Функция-генератор
|
**Тип:** Функция-генератор (CI-aware)
|
||||||
|
|
||||||
```ts
|
|
||||||
import {playwrightConfig} from '@vigdorov/playwright-config';
|
|
||||||
|
|
||||||
export default playwrightConfig({
|
|
||||||
baseURL: 'http://localhost:5176',
|
|
||||||
testDir: 'e2e',
|
|
||||||
retries: 0,
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Базовый конфиг:**
|
|
||||||
- timeout: 30000
|
|
||||||
- retries: CI ? (params.retries ?? 2) : (params.retries ?? 0)
|
|
||||||
- reporter: CI ? 'html' : 'list'
|
|
||||||
- use.trace: 'on-first-retry'
|
|
||||||
- use.screenshot: 'only-on-failure'
|
|
||||||
- Три браузера: chromium, firefox, webkit
|
- Три браузера: chromium, firefox, webkit
|
||||||
|
- retries: 0 локально / 2 в CI
|
||||||
|
|
||||||
### @vigdorov/knip-config
|
### @vigdorov/knip-config
|
||||||
|
|
||||||
**Тип:** Функция-генератор
|
**Тип:** Функция-генератор
|
||||||
|
- entry, project, ignore, ignoreDependencies
|
||||||
```ts
|
- Exit code 1 при ошибках — блокирует сборку
|
||||||
import {knipConfig} from '@vigdorov/knip-config';
|
|
||||||
|
|
||||||
export default knipConfig({
|
|
||||||
entry: ['src/main.tsx'],
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
**Базовый конфиг:**
|
|
||||||
- entry: params.entry ?? ['src/index.ts']
|
|
||||||
- project: params.project ?? ['src/**/*.{ts,tsx,js,jsx}']
|
|
||||||
- ignore: ['**/*.test.*', '**/*.spec.*', 'e2e/**', '**/*.d.ts', ...params.ignore]
|
|
||||||
- ignoreDependencies: params.ignoreDependencies ?? []
|
|
||||||
- Knip завершается с exit code 1 при ошибках (используется в check-скрипте для блокировки сборки)
|
|
||||||
|
|
||||||
## CI/CD
|
## CI/CD
|
||||||
|
|
||||||
@ -275,7 +168,7 @@ export default knipConfig({
|
|||||||
- Для каждого пакета в packages/ сравнивает версию с registry
|
- Для каждого пакета в packages/ сравнивает версию с registry
|
||||||
- Публикует только пакеты с новой версией
|
- Публикует только пакеты с новой версией
|
||||||
|
|
||||||
**Trigger:** только main, только push
|
**Trigger:** main, push + custom
|
||||||
|
|
||||||
### service.yaml для dev-configs
|
### service.yaml для dev-configs
|
||||||
|
|
||||||
@ -318,7 +211,7 @@ dev-configs/
|
|||||||
├── packages/
|
├── packages/
|
||||||
│ ├── eslint/ → @vigdorov/eslint-config
|
│ ├── eslint/ → @vigdorov/eslint-config
|
||||||
│ ├── prettier/ → @vigdorov/prettier-config
|
│ ├── prettier/ → @vigdorov/prettier-config
|
||||||
│ ├── typescript/ → @vigdorov/typescript-config
|
│ ├── typescript/ → @vigdorov/typescript-config (base, react, node)
|
||||||
│ ├── vite/ → @vigdorov/vite-config
|
│ ├── vite/ → @vigdorov/vite-config
|
||||||
│ ├── jest/ → @vigdorov/jest-config
|
│ ├── jest/ → @vigdorov/jest-config
|
||||||
│ ├── playwright/ → @vigdorov/playwright-config
|
│ ├── playwright/ → @vigdorov/playwright-config
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@ -9936,7 +9936,7 @@
|
|||||||
},
|
},
|
||||||
"packages/eslint": {
|
"packages/eslint": {
|
||||||
"name": "@vigdorov/eslint-config",
|
"name": "@vigdorov/eslint-config",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stylistic/eslint-plugin": "^4.2.0",
|
"@stylistic/eslint-plugin": "^4.2.0",
|
||||||
"eslint-plugin-unused-imports": "^4.1.4",
|
"eslint-plugin-unused-imports": "^4.1.4",
|
||||||
@ -10006,7 +10006,7 @@
|
|||||||
},
|
},
|
||||||
"packages/typescript": {
|
"packages/typescript": {
|
||||||
"name": "@vigdorov/typescript-config",
|
"name": "@vigdorov/typescript-config",
|
||||||
"version": "1.0.0"
|
"version": "1.1.0"
|
||||||
},
|
},
|
||||||
"packages/vite": {
|
"packages/vite": {
|
||||||
"name": "@vigdorov/vite-config",
|
"name": "@vigdorov/vite-config",
|
||||||
|
|||||||
Reference in New Issue
Block a user