@cubic-platform/core
v1.0.3
Published
Core utils and shared setup for Cubic microservices
Readme
@cubic-platform/core
Общие конфигурации и инструменты для микросервисов Cubic.
Установка
Всего 2 команды:
pnpm add @cubic-platform/core
npx cubic-initСкрипт автоматически:
- Спросит тип проекта (Node.js/NestJS или React/Next.js/RN)
- Установит все зависимости (TypeScript, ESLint, Prettier, Husky, Commitlint, Lint-staged)
- Создаст все конфигурационные файлы
- Настроит git hooks
- Создаст tsconfig.json, .gitignore, директорию src/
- Добавит скрипты в package.json
Что включено
| Конфиг | Описание |
|--------|----------|
| @cubic-platform/core/prettier | Prettier с сортировкой импортов |
| @cubic-platform/core/eslint | Строгий ESLint для TS/React/NestJS |
| @cubic-platform/core/commitlint | Валидация сообщений коммитов |
| @cubic-platform/core/lint-staged | Конфиг для pre-commit линтинга |
| @cubic-platform/core/tsconfig/base | Строгий базовый TypeScript |
| @cubic-platform/core/tsconfig/node | TypeScript для NestJS/Node.js |
| @cubic-platform/core/tsconfig/react | TypeScript для React/Next.js/RN |
| @cubic-platform/core/gitignore | Общий gitignore |
Ручная настройка
Prettier
// prettier.config.mjs
export { default } from '@cubic-platform/core/prettier'Особенности:
- Табы, ширина 4
- Без точек с запятой
- Одинарные кавычки
- Сортировка импортов через
@trivago/prettier-plugin-sort-imports
ESLint
// eslint.config.mjs
export { default } from '@cubic-platform/core/eslint'Или расширить:
// eslint.config.mjs
import baseConfig from '@cubic-platform/core/eslint'
export default [
...baseConfig,
{
rules: {
// ваши правила
}
}
]Особенности:
- Строгие правила TypeScript с проверкой типов
- Правила React и React Hooks
- Сортировка импортов и обнаружение циклов
- Специальные правила для NestJS (декораторы)
- Ослабленные правила для тестов
TypeScript
NestJS / Node.js:
{
"extends": "@cubic-platform/core/tsconfig/node",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
}
}React / Next.js / React Native:
{
"extends": "@cubic-platform/core/tsconfig/react"
}Только база (своя настройка):
{
"extends": "@cubic-platform/core/tsconfig/base"
}Commitlint
// commitlint.config.mjs
export { default } from '@cubic-platform/core/commitlint'Lint-staged
// lint-staged.config.mjs
export { default } from '@cubic-platform/core/lint-staged'Gitignore
Скопировать в корень проекта:
cp node_modules/@cubic-platform/core/src/.gitignore .gitignoreGit Flow соглашения
Именование веток
тип/cubic-XXXX| Тип | Описание |
|-----|----------|
| feature | Новый функционал |
| fix | Исправление багов |
| bugfix | Исправление багов (алиас) |
| hotfix | Срочные исправления на проде |
| release | Подготовка релиза |
| refactor | Рефакторинг кода |
| docs | Документация |
| test | Тесты |
| chore | Обслуживание |
XXXX = 2-4 заглавные буквы (код сервиса)
Примеры:
git checkout -b feature/cubic-AUTH
git checkout -b fix/cubic-API
git checkout -b hotfix/cubic-USERЗащищённые ветки (без префикса):
mainmasterdevelop
Формат сообщений коммитов
тип/cubic-XXXX - описание- Максимум 72 символа
- Описание начинается с маленькой буквы
- Без точки в конце
Примеры:
git commit -m "feature/cubic-AUTH - add JWT authentication"
git commit -m "fix/cubic-API - resolve timeout on large requests"
git commit -m "hotfix/cubic-USER - patch XSS vulnerability"Лицензия
ISC
