Очистите зависимости проекта — ускорьте разработку и сборку!
Каждая зависимость в вашем проекте — это дополнительное время сборки, место на диске, потенциальная уязвимость, увеличенный размер приложения и риск конфликтов версий.
Особенно это касается неиспользуемых зависимостей и библиотек, которые часто:
npm install),node_modules и финального бандла,lodash (если используете современный JS)moment.js (замените на date-fns или нативные Date)jquery (если используете современные фреймворки)axios + fetch одновременноwebpack (если перешли на Vite)gulp, grunt (если используете современные сборщики)bower (давно устарел)tslint (заменён на ESLint)jshint, jslint (если используете ESLint)mocha + jest одновременноkarma (если тестируете в Node.js)protractor (устарел, используйте Playwright/Cypress)node-sass (замените на sass)less, stylus (если используете CSS-in-JS)@types/* для библиотек, которые уже включают типы# Установите depcheck
npm install -g depcheck
# Запустите анализ
depcheck
# Или используйте npm-check
npm install -g npm-check
npm-check# Проверить устаревшие зависимости
npm outdated
# Или с более подробной информацией
npm-check -u# Проверка уязвимостей
npm audit
# Автоматическое исправление
npm audit fix
# Принудительное исправление (осторожно!)
npm audit fix --force# Для webpack
npx webpack-bundle-analyzer dist/static/js/*.js
# Для Vite
npx vite-bundle-analyzer
# Универсальный анализатор
npx bundlephobiaKnip — это продвинутый инструмент для поиска и удаления неиспользуемых зависимостей, экспортов и файлов в JavaScript/TypeScript проектах.
# Установка
npm install -g knip
# Запуск анализа
knip
# Или без установки
npx knipПреимущества Knip:
npm shrinkwrap),date-fns вместо moment),{
"scripts": {
"deps:check": "depcheck",
"deps:knip": "knip",
"deps:update": "npm-check-updates -u",
"deps:audit": "npm audit",
"deps:clean": "npm prune && npm dedupe",
"bundle:analyze": "npx webpack-bundle-analyzer dist/static/js/*.js"
}
}# Установите husky
npm install --save-dev husky
# Добавьте хук
echo "npm run deps:audit" > .husky/pre-commit🔻 Избыточные зависимости:
🧹 Регулярно проводите ревизию всех зависимостей проекта. Удаляйте неиспользуемое, обновляйте устаревшее, заменяйте тяжёлые библиотеки на лёгкие альтернативы. Используйте современные инструменты как Knip для более точного анализа и следите за размером финального бандла.