Анализатор пакетов NPM

Вставьте ваш package.json для анализа зависимостей, поиска тяжёлых пакетов и оценки влияния на размер бандла

Анализатор пакетов NPM

Вставьте ваш package.json для анализа зависимостей, поиска тяжёлых пакетов и оценки влияния на размер бандла

Возможности

  • Анализируйте dependencies и devDependencies в package.json одним взглядом
  • Обнаруживайте тяжёлые пакеты, такие как moment, lodash и core-js, с более лёгкими альтернативами
  • Оценивайте общее влияние на размер бандла от продакшен-зависимостей
  • Находите устаревшие, незакреплённые и git-зависимости
  • Определяйте устаревшие шаблоны инструментов, такие как TSLint или Babel 6

Как использовать

  1. Скопируйте содержимое вашего файла package.json из проекта.
  2. Вставьте его в область ввода и нажмите Анализировать.
  3. Просмотрите обзор зависимостей, проблемы и оценки размера.

Советы и лучшие практики

  • Вставьте код напрямую или используйте функцию загрузки файлов для более крупных файлов.
  • Инструмент сохраняет ваш исходный ввод — вы всегда можете вернуться и изменить его.
  • Используйте вывод напрямую в вашей IDE или конвейере сборки.
  • Проверьте отформатированный вывод на наличие предупреждений или сообщений валидации.
  • Вся обработка выполняется на стороне клиента, что делает её безопасной для проприетарного кода.

Вопросы и ответы

Отправляются ли данные моего package.json на сервер?

Нет. Весь анализ выполняется полностью в вашем браузере. Ничего не загружается и не сохраняется ни на одном сервере. Содержимое вашего package.json остаётся приватным и локальным на вашем компьютере.

Как оцениваются размеры бандла?

Известные тяжёлые пакеты, такие как moment, lodash и core-js, имеют предварительно измеренные размеры. Другие зависимости используют среднюю оценку 25 КБ каждая. Это приблизительные оценки, помогающие выявить наибольших участников размера бандла.

Какие проблемы обнаруживает анализатор?

Анализатор проверяет наличие тяжёлых пакетов с более лёгкими альтернативами, устаревших пакетов, версий с подстановочными знаками или незакреплённых, git-зависимостей, отсутствующих полей лицензии или engine, а также устаревших шаблонов инструментов, таких как TSLint или старых версий Babel.

Могу ли я проанализировать lock-файл (package-lock.json или yarn.lock)?

В настоящее время инструмент поддерживает только содержимое package.json. Lock-файлы имеют другую структуру и не обрабатываются этим анализатором. Мы фокусируемся на объявлениях зависимостей, которые вы контролируете напрямую.

Почему инструмент предлагает заменить moment на date-fns или dayjs?

moment занимает примерно 290 КБ в минифицированном виде и не поддерживает tree-shaking, что означает, что вся библиотека включается в ваш бандл, даже если вы используете только одну функцию. date-fns (с поддержкой tree-shaking) и dayjs (2 КБ) — современные альтернативы, которые значительно уменьшают размер бандла.

Проверяет ли этот инструмент уязвимости безопасности?

Этот инструмент сосредоточен на анализе бандла и лучших практиках, а не на уязвимостях безопасности. Для аудита безопасности используйте npm audit или такие инструменты, как Snyk. Однако мы помечаем устаревшие пакеты, которые могут иметь известные проблемы безопасности.

Могу ли я использовать это для файлов package.json монорепозитория или workspace?

Да. Вы можете вставить любое содержимое package.json, включая корень workspace или отдельные файлы пакетов. Анализатор обработает все dependencies и devDependencies, которые он найдёт в предоставленном вами JSON.