Когда я ищу пакеты в NPM, я хотел бы видеть размеры пакетов (в КБ или МБ и т.д.). NPM, похоже, не показывает эту информацию.
Как я могу определить, какое количество пакета NPM будет добавлено в мой проект?
Когда я ищу пакеты в NPM, я хотел бы видеть размеры пакетов (в КБ или МБ и т.д.). NPM, похоже, не показывает эту информацию.
Как я могу определить, какое количество пакета NPM будет добавлено в мой проект?
То, что вы, вероятно, хотите измерить, это влияние пакета, если вы добавите его в свой пакет приложений. В большинстве других ответов будет оцениваться только размер исходных файлов, который может быть неточным из-за встроенных комментариев, длинных имен переменных и т.д.
Я сделал небольшую утилиту, которая сообщит вам минимальный + gzip-размер пакета после того, как он попадет в ваш пакет -
Взгляните на этот проект cost-of-modules. Это пакет npm, в котором будет указан размер пакета и количество детей.
Установка:
npm install -g cost-of-modules
Использование:
Запустите cost-of-modules
в каталоге, в котором вы работаете.
Я создал инструмент, размер загрузки npm, который проверяет размер тарбола для данного пакета npm, включая все тарболы в дереве зависимостей.
На изображении выше размер Tarball - это tar.gz пакета, а Total size - это размер всех tarballs. Инструмент довольно простой, но он делает то, что говорит.
Инструмент Cli также доступен. Вы можете установить его так:
npm i -g download-size
И используйте это так:
$ download-size request
[email protected]: 1.08 MiB
Вот демоверсия asciinema.
Исходный код доступен на Github: API, инструмент Cli и веб-клиент.
В начале этого года я создал Package Phobia с надеждой получить информацию о размере пакета на npmjs.com, а также отслеживать время распространения пакета.
Он предназначен для измерения дискового пространства после запуска npm install
для серверных зависимостей, таких как express
или dev, таких как jest
.
Вы можете прочитать больше об этом инструменте и других подобных инструментах в readme здесь: https://github.com/styfle/packagephobia
Примечание. Несмотря на то, что команда npm не пытается изменить веб-сайт, они рассматривают возможность добавления установленного размера в cli. См. RFC 1 для получения дополнительной информации.
В случае, если вы используете webpack в качестве вашего модуля модуля, взгляните на:
Я определенно рекомендую первый вариант. Показывает размер в интерактивной древовидной карте. Это поможет вам найти размер пакета в вашем файле.
Другие ответы в этом посте показывают вам размер проекта, но вы можете использовать не все части проекта, например, с дрожанием дерева. Тогда другие подходы могут не показать вам точный размер.
Попробуйте использовать размер пакета.
npx package-size vue,vue-router,vuex react,react-dom,react-router,redux
Если вы используете код Visual Studio, вы можете использовать расширение под названием " Стоимость импорта".
Это расширение будет отображать встроенный в редакторе размер импортируемого пакета. Расширение использует 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);
});
Это может показаться немного подробным, но оно решает проблему, которую вы описали соответствующим образом.
"Быстрый и грязный" способ - использовать завиток и wzrd.in, чтобы быстро загрузить уменьшенный пакет, а затем grep размер файла
curl -i https://wzrd.in/standalone/[email protected] | grep Content-Length
Загрузка миниатюра, но не gzipped, но вы получаете представление об относительном размере пакетов при сравнении двух или более из них.