@uzum-tech/depcruise
v1.0.1
Published
Shared dependency-cruiser configuration for Uzum Tech projects.
Maintainers
Readme
@uzum-tech/depcruise
Общая конфигурация dependency-cruiser для проектов Uzum Tech.
Пакет помогает подключить единые правила проверки зависимостей: циклические зависимости, неиспользуемые модули, неразрешимые импорты, зависимости production-кода от devDependencies и базовые ограничения Feature-Sliced Design.
Установка
pnpm add -D @uzum-tech/depcruiseИспользование
Создайте .dependency-cruiser.mjs в корне проекта:
import { defineDepcruiseVue } from '@uzum-tech/depcruise';
export default defineDepcruiseVue();Добавьте script в package.json:
{
"scripts": {
"lint:deps": "depcruise src --config .dependency-cruiser.mjs"
}
}Если проект использует нестандартный путь к TypeScript-конфигу:
import { defineDepcruiseVue } from '@uzum-tech/depcruise';
export default defineDepcruiseVue({
tsConfigFileName: './tsconfig.app.json'
});Что проверяется
- циклические зависимости;
- orphan-модули;
- импорты npm-пакетов, которых нет в
package.json; - импорты из
devDependenciesв production-коде; - неразрешимые локальные импорты;
- импорты из нижних FSD-слоев в верхние;
- кросс-сегментные импорты внутри одного FSD-слоя;
- кросс-проектные импорты между
src/projects/*.
Вывод ошибок
Команда depcruise из этого пакета по умолчанию использует подробный формат вывода, чтобы рядом с названием правила показывался comment с объяснением ошибки. Если нужен стандартный короткий вывод dependency-cruiser, передайте output type явно:
depcruise src --config .dependency-cruiser.mjs -T err