Очистите зависимости проекта — ускорьте разработку и сборку!
Каждая зависимость в вашем проекте — это дополнительное время сборки, место на диске, потенциальная уязвимость, увеличенный размер приложения и риск конфликтов версий.
Особенно это касается неиспользуемых зависимостей и библиотек, которые часто:
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 bundlephobia
Knip — это продвинутый инструмент для поиска и удаления неиспользуемых зависимостей, экспортов и файлов в 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 для более точного анализа и следите за размером финального бандла.