Зависимости
Полный список всех производственных и dev зависимостей проекта с их назначением.
Production зависимости
Angular Core (@angular/*)
| Пакет | Версия | Назначение |
|---|---|---|
| @angular/animations | ^20.1.1 | Анимации и переходы |
| @angular/cdk | ^20.1.1 | Component Dev Kit — утилиты |
| @angular/common | ^20.1.1 | CommonModule, pipes |
| @angular/compiler | ^20.1.1 | Компилятор шаблонов |
| @angular/core | ^20.1.1 | Ядро Angular |
| @angular/forms | ^20.1.1 | Reactive Forms, FormsModule |
| @angular/material | ^20.1.1 | Material Design компоненты |
| @angular/platform-browser | ^20.1.1 | Работа с браузером |
| @angular/platform-browser-dynamic | ^20.1.1 | Dynamic compilation |
| @angular/platform-server | ^20.1.1 | SSR support |
| @angular/router | ^20.1.1 | Маршрутизация |
| @angular/ssr | ^20.1.1 | Server-Side Rendering |
State Management
| Пакет | Версия | Назначение |
|---|---|---|
| @ngneat/elf | ^2.5.1 | Легковесный state management |
| @ngneat/elf-devtools | ^1.3.0 | DevTools для Elf |
| @ngneat/elf-persist-state | ^1.2.1 | Персистентность состояния |
| @ngneat/until-destroy | ^10.0.0 | Управление subscriptions |
Утилиты и библиотеки
| Пакет | Версия | Назначение |
|---|---|---|
| date-fns | ^4.1.0 | Работа с датами |
| dayjs | 1.11.13 | Легковесная альтернатива moment |
| express | 4.21.2 | Express сервер для SSR |
| jwt-decode | ^4.0.0 | Декодирование JWT токенов |
| rxjs | ~7.8.0 | Реактивное программирование |
| tslib | 2.8.1 | TypeScript runtime library |
| uuid | 11.0.5 | Генерация UUID |
| zone.js | 0.15.0 | Change detection zone |
Dev зависимости
Build Tools
| Пакет | Версия | Назначение |
|---|---|---|
| @angular-devkit/build-angular | ^20.1.1 | Angular build CLI |
| @angular/cli | ^20.1.1 | Angular Command Line Interface |
| @angular/compiler-cli | ^20.1.1 | Компилятор для CLI |
Linting & Code Quality
| Пакет | Версия | Назначение |
|---|---|---|
| @angular-eslint/eslint-plugin | ^21.1.0 | ESLint плагин для Angular |
| @angular-eslint/eslint-plugin-template | ^21.1.0 | Проверка Angular шаблонов |
| @angular-eslint/template-parser | ^21.1.0 | Parser для HTML шаблонов |
| @eslint/eslintrc | ^3.2.0 | ESLint config utilities |
| @eslint/js | ^9.18.0 | ESLint JavaScript config |
| @typescript-eslint/eslint-plugin | ^8.20.0 | TypeScript ESLint правила |
| @typescript-eslint/parser | ^8.20.0 | Parser для TypeScript |
| eslint | ^9.18.0 | Основной линтер |
| eslint-plugin-simple-import-sort | 12.1.1 | Сортировка импортов |
| eslint-plugin-sonarjs | ^3.0.1 | SonarJS правила |
| eslint-plugin-unicorn | ^56.0.1 | Лучшие практики JS |
| eslint-plugin-unused-imports | 4.1.4 | Проверка неиспользуемых импортов |
| stylelint | ^16.13.2 | SCSS/CSS линтер |
| stylelint-scss | ^6.10.1 | SCSS поддержка |
Code Formatting
| Пакет | Версия | Назначение |
|---|---|---|
| prettier | 3.4.2 | Code formatter |
| pretty-quick | 4.0.0 | Prettier для staged файлов |
Git Hooks
| Пакет | Версия | Назначение |
|---|---|---|
| husky | 9.1.7 | Git hooks manager |
| lint-staged | ^15.4.1 | Запуск linters на staged файлах |
TypeScript
| Пакет | Версия | Назначение |
|---|---|---|
| typescript | ^5.8.3 | TypeScript компилятор |
| typescript-eslint | ^8.38.0 | TypeScript ESLint поддержка |
Testing & Types
| Пакет | Версия | Назначение |
|---|---|---|
| @types/express | 5.0.0 | Типы для Express |
| @types/jasmine | 5.1.5 | Типы для Jasmine |
| @types/node | ^22.10.7 | Типы для Node.js |
Other Tools
| Пакет | Версия | Назначение |
|---|---|---|
| glob | ^11.0.0 | Глобальные паттерны файлов |
| postcss-scss | ^4.0.6 | PostCSS для SCSS |
| tsx | ^4.7.0 | Выполнение TypeScript скриптов |
Версионирование
Семантическое версионирование
1.2.3
^ ^ ^
| | └─ Patch (исправления)
| └─── Minor (новые функции)
└───── Major (breaking changes)Specifiers
| Specifier | Версия | Примечание |
|---|---|---|
^1.2.3 | >=1.2.3, <2.0.0 | Минор и патч обновления |
~1.2.3 | >=1.2.3, <1.3.0 | Только патч обновления |
1.2.3 | Точно 1.2.3 | Фиксированная версия |
В проекте используется:
^для большинства зависимостей (разрешить минор обновления)~для критических пакетов- Фиксированные версии для стабильных пакетов
Обновление зависимостей
Проверить устаревшие пакеты
bash
npm outdatedПроверить проблемы безопасности
bash
npm auditАвтоматическое исправление
bash
# Только патч версии
npm update
# Мажор обновления (осторожно!)
npm install -g npm-check-updates
ncu -u
npm installПроверить не используемые пакеты
bash
npm run depcheck-packagesИнтерактивная проверка
bash
npm run update-packagesDependency Tree
Основной граф зависимостей
integ-admin
├── Angular 20
│ ├── Material Design 3
│ ├── RxJS 7.8
│ └── Zone.js
├── State Management
│ └── @ngneat/elf
├── HTTP
│ └── express (для SSR)
├── Utilities
│ ├── date-fns
│ ├── dayjs
│ ├── jwt-decode
│ └── uuid
└── Dev Tools
├── ESLint
├── Stylelint
├── Prettier
├── TypeScript
└── Husky + lint-stagedBest Practices
✅ Делайте:
- Регулярно проверяйте
npm outdated - Обновляйте критические патчи сразу
- Тестируйте после больших обновлений
- Используйте
npm ciв CI/CD вместоnpm install
❌ Не делайте:
- Не коммитьте
package-lock.jsonбез необходимости - Не игнорируйте security vulnerabilities
- Не обновляйте мажор версии без тестирования
- Не используйте
npm installв production
Устранение проблем
Конфликты версий
bash
# Очистить cache
npm cache clean --force
# Переустановить зависимости
rm -rf node_modules package-lock.json
npm installОшибки peer-dependencies
bash
# Установить с --legacy-peer-deps (временное решение)
npm install --legacy-peer-deps
# Лучше — обновить конфликтующие пакеты
npm update <package>Проблемы с build
bash
# Полная чистка
npm run clean
npm install
npm run buildСледующие шаги
- Архитектура — структура проекта
- Паттерны — архитектурные решения
- Качество кода — линтинг и форматирование