Когда я ищу пакеты в NPM, я хотел бы видеть размеры пакетов (в КБ или МБ и т. Д.). NPM, похоже, не показывает эту информацию.
Как я могу определить, насколько пакет NPM добавит моего проекта?
Когда я ищу пакеты в NPM, я хотел бы видеть размеры пакетов (в КБ или МБ и т. Д.). NPM, похоже, не показывает эту информацию.
Как я могу определить, насколько пакет NPM добавит моего проекта?
Ответы:
Что вы, вероятно, захотите измерить, так это влияние пакета, если вы добавите его в свой набор приложений. Большинство других ответов будут оценивать только размер исходных файлов, что может быть неточным из-за встроенных комментариев, длинных имен переменных и т. Д.
Я сделал небольшую утилиту, которая сообщит вам минимальный + gzip-размер пакета после того, как он попадет в ваш бандл -
https://cost-of-modules.herokuapp.com
теперь указывает на https://bundlephobia.com
очень полезный инструмент, кстати.
Взгляните на этот проект стоимости модулей . Это пакет npm, в котором будет указан размер пакета и количество дочерних элементов.
Монтаж:
npm install -g cost-of-modules
Использование: запускать cost-of-modules
в каталоге, в котором вы работаете.
Я создал инструмент, размер загрузки npm , который проверяет размер архива для данного пакета npm, включая все архивы в дереве зависимостей. Это дает вам представление о стоимости (время установки, дисковое пространство, ресурсы времени выполнения, аудит безопасности, ...) предварительного добавления зависимости.
На изображении выше размер Tarball - это tar.gz пакета, а Общий размер - это размер всех tarball. Инструмент довольно простой, но он делает то, что говорит.
Кли инструмент также доступен. Установить его можно так:
npm i -g download-size
И используйте это так:
$ download-size request
request@2.83.0: 1.08 MiB
Исходный код доступен на Github: api , инструмент cli и веб-клиент .
Я создал Package Phobia в начале этого года с надеждой получить информацию о размере пакета на npmjs.com, а также отслеживать разрастание пакетов с течением времени.
Это предназначено для измерения дискового пространства после запуска на npm install
предмет зависимостей на стороне сервера, таких как express
или зависимости разработчика, например jest
.
Вы можете узнать больше об этом инструменте и других подобных инструментах в readme здесь: https://github.com/styfle/packagephobia
Обновление 2020
«Размер без упаковки» (в основном размер публикации) доступен на веб-сайте npmjs.com вместе с «Всего файлов». Однако это не рекурсивное значение, npm install
которое, вероятно, будет намного больше, потому что один пакет, вероятно, зависит от многих пакетов (таким образом, Package Phobia по-прежнему актуален).
Также существует ожидающий RFC для функции, которая выводит эту информацию из интерфейса командной строки.
Если вы используете webpack в качестве сборщика модулей, обратите внимание на:
Однозначно рекомендую первый вариант. Он показывает размер в интерактивной древовидной карте. Это поможет вам определить размер пакета в вашем связанном файле.
Другие ответы в этом посте показывают вам размер проекта, но вы можете использовать не все части проекта, например, с встряхиванием дерева. Тогда другие подходы могут не показать вам точного размера.
Попробуйте использовать размер пакета .
npx package-size vue,vue-router,vuex react,react-dom,react-router,redux
Если вы используете Visual Studio Code, вы можете использовать расширение под названием Import Cost .
Это расширение будет отображать в редакторе в строке размер импортированного пакета. Расширение использует webpack с babili-webpack-plugin для определения импортированного размера.
Вы можете проверить 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);
});
Это может показаться немного многословным, но оно решает проблему, которую вы описали должным образом.
"Быстрый и грязный" способ - использовать curl и wzrd.in для быстрой загрузки минифицированного пакета и затем определить размер файла:
curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length
Загрузка уменьшена, но не сжата, но вы получите хорошее представление об относительном размере пакетов при сравнении двух или более из них.
howfat - еще один инструмент, который может показать общий размер пакета:
npx howfat jasmine
node_modules
на моей машине атм занимает 21бг;npkill
может помочь вам в этом ! [введите описание изображения здесь ] ( i.stack.imgur.com/BKbyU.png )