Как просмотреть размер пакетов npm?

Когда я ищу пакеты в NPM, я хотел бы видеть размеры пакетов (в КБ или МБ и т.д.). NPM, похоже, не показывает эту информацию.

Как я могу определить, какое количество пакета NPM будет добавлено в мой проект?

Ответ 1

То, что вы, вероятно, хотите измерить, это влияние пакета, если вы добавите его в свой пакет приложений. В большинстве других ответов будет оцениваться только размер исходных файлов, который может быть неточным из-за встроенных комментариев, длинных имен переменных и т.д.

Я сделал небольшую утилиту, которая сообщит вам минимальный + gzip-размер пакета после того, как он попадет в ваш пакет -

https://bundlephobia.com

Ответ 2

Взгляните на этот проект cost-of-modules. Это пакет npm, в котором будет указан размер пакета и количество детей.

Установка: npm install -g cost-of-modules

Использование: Запустите cost-of-modules в каталоге, в котором вы работаете.

введите описание изображения здесь

Ответ 3

Я создал инструмент, размер загрузки npm, который проверяет размер тарбола для данного пакета npm, включая все тарболы в дереве зависимостей.

download size of webpack

На изображении выше размер Tarball - это tar.gz пакета, а Total size - это размер всех tarballs. Инструмент довольно простой, но он делает то, что говорит.

Инструмент Cli также доступен. Вы можете установить его так:

npm i -g download-size

И используйте это так:

$ download-size request
[email protected]: 1.08 MiB

Вот демоверсия asciinema.

Исходный код доступен на Github: API, инструмент Cli и веб-клиент.

Ответ 4

В начале этого года я создал Package Phobia с надеждой получить информацию о размере пакета на npmjs.com, а также отслеживать время распространения пакета.

https://packagephobia.now.sh

img

Он предназначен для измерения дискового пространства после запуска npm install для серверных зависимостей, таких как express или dev, таких как jest.

Вы можете прочитать больше об этом инструменте и других подобных инструментах в readme здесь: https://github.com/styfle/packagephobia


Примечание. Несмотря на то, что команда npm не пытается изменить веб-сайт, они рассматривают возможность добавления установленного размера в cli. См. RFC 1 для получения дополнительной информации.

Ответ 5

В случае, если вы используете webpack в качестве вашего модуля модуля, взгляните на:

Я определенно рекомендую первый вариант. Показывает размер в интерактивной древовидной карте. Это поможет вам найти размер пакета в вашем файле.

Webpack Bundle Analyzer

Другие ответы в этом посте показывают вам размер проекта, но вы можете использовать не все части проекта, например, с дрожанием дерева. Тогда другие подходы могут не показать вам точный размер.

Ответ 6

Попробуйте использовать размер пакета.

npx package-size vue,vue-router,vuex react,react-dom,react-router,redux

https://github.com/egoist/package-size package-size npm

Ответ 7

Если вы используете код Visual Studio, вы можете использовать расширение под названием " Стоимость импорта".

Это расширение будет отображать встроенный в редакторе размер импортируемого пакета. Расширение использует webpack с babili-webpack-plugin для определения импортированного размера.

Ответ 8

Вы можете проверить npm-module-stats. Это модуль npm, который получает размер модуля npm и его зависимостей без установки или загрузки модуля.

Использование:

var stats = require("npm-module-stats");

stats.getStats("glob").then((stack) => {

  let dependencies = Object.keys(stack);
  let totalSize = dependencies.reduce((result, key, index) => {
    return result + stack[key].size;
  }, 0);

  console.log('Total Size in Bytes ', totalSize);
  console.log('Total Dependencies ', dependencies.length-1);

}).catch((err) => {
  console.error(err);
});

Это может показаться немного подробным, но оно решает проблему, которую вы описали соответствующим образом.

Ответ 9

"Быстрый и грязный" способ - использовать завиток и wzrd.in, чтобы быстро загрузить уменьшенный пакет, а затем grep размер файла

curl -i https://wzrd.in/standalone/[email protected] | grep Content-Length

Загрузка миниатюра, но не gzipped, но вы получаете представление об относительном размере пакетов при сравнении двух или более из них.