Перехватываю этот разговор, потому что я хотел бы указать на инструмент, который помогает требовать свободного места на вашем компьютере. Видимо node_modulesна моей машине атм занимает 21бг; npkillможет помочь вам в этом ! [введите описание изображения здесь ] ( i.stack.imgur.com/BKbyU.png )
Ахмад Альфи
Ответы:
182
Что вы, вероятно, захотите измерить, так это влияние пакета, если вы добавите его в свой набор приложений. Большинство других ответов будут оценивать только размер исходных файлов, что может быть неточным из-за встроенных комментариев, длинных имен переменных и т. Д.
Я сделал небольшую утилиту, которая сообщит вам минимальный + gzip-размер пакета после того, как он попадет в ваш бандл -
Немного перебор, необходимо переустановить все ваши модули перед вычислением. Но делает свою работу.
pdem 03
7
не используйте этот пакет - он создает папку артефактов под названием nodemodules.bak, которая создает уродливые побочные эффекты
Nth.gol
22
Я создал инструмент, размер загрузки npm , который проверяет размер архива для данного пакета npm, включая все архивы в дереве зависимостей. Это дает вам представление о стоимости (время установки, дисковое пространство, ресурсы времени выполнения, аудит безопасности, ...) предварительного добавления зависимости.
На изображении выше размер Tarball - это tar.gz пакета, а Общий размер - это размер всех tarball. Инструмент довольно простой, но он делает то, что говорит.
Кли инструмент также доступен. Установить его можно так:
Я создал Package Phobia в начале этого года с надеждой получить информацию о размере пакета на npmjs.com, а также отслеживать разрастание пакетов с течением времени.
Это предназначено для измерения дискового пространства после запуска на npm installпредмет зависимостей на стороне сервера, таких как expressили зависимости разработчика, например jest.
«Размер без упаковки» (в основном размер публикации) доступен на веб-сайте npmjs.com вместе с «Всего файлов». Однако это не рекурсивное значение, npm installкоторое, вероятно, будет намного больше, потому что один пакет, вероятно, зависит от многих пакетов (таким образом, Package Phobia по-прежнему актуален).
Также существует ожидающий RFC для функции, которая выводит эту информацию из интерфейса командной строки.
Это здорово, но почему его результаты так сильно отличаются от фобии пучков? например, сравните результаты для lodash.lowerfirst
Айтекин
2
@DanyalAytekin Потому что они измеряют разные вещи. Краткий ответ: если вы ищете интерфейсный пакет, используйте BundlePhobia. Если вы ищете серверный пакет, используйте PackagePhobia. Если вам интересно, есть подробности в readme .
Styfle
16
Если вы используете webpack в качестве сборщика модулей, обратите внимание на:
Однозначно рекомендую первый вариант. Он показывает размер в интерактивной древовидной карте. Это поможет вам определить размер пакета в вашем связанном файле.
Другие ответы в этом посте показывают вам размер проекта, но вы можете использовать не все части проекта, например, с встряхиванием дерева. Тогда другие подходы могут не показать вам точного размера.
Если вы используете Visual Studio Code, вы можете использовать расширение под названием Import Cost .
Это расширение будет отображать в редакторе в строке размер импортированного пакета. Расширение использует webpack с babili-webpack-plugin для определения импортированного размера.
Это расширение работает не для всех пакетов. Он показывает Calculating ... а затем внезапно исчезает даже после изменения значения тайм-аута на очень большое число
шреянш
2
Вы можете проверить 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);
});
Это может показаться немного многословным, но оно решает проблему, которую вы описали должным образом.
node_modules
на моей машине атм занимает 21бг;npkill
может помочь вам в этом ! [введите описание изображения здесь ] ( i.stack.imgur.com/BKbyU.png )Ответы:
Что вы, вероятно, захотите измерить, так это влияние пакета, если вы добавите его в свой набор приложений. Большинство других ответов будут оценивать только размер исходных файлов, что может быть неточным из-за встроенных комментариев, длинных имен переменных и т. Д.
Я сделал небольшую утилиту, которая сообщит вам минимальный + gzip-размер пакета после того, как он попадет в ваш бандл -
https://bundlephobia.com
источник
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. Инструмент довольно простой, но он делает то, что говорит.
Кли инструмент также доступен. Установить его можно так:
И используйте это так:
Исходный код доступен на Github: api , инструмент cli и веб-клиент .
источник
Я создал Package Phobia в начале этого года с надеждой получить информацию о размере пакета на npmjs.com, а также отслеживать разрастание пакетов с течением времени.
https://packagephobia.com
Это предназначено для измерения дискового пространства после запуска на
npm install
предмет зависимостей на стороне сервера, таких какexpress
или зависимости разработчика, напримерjest
.Вы можете узнать больше об этом инструменте и других подобных инструментах в readme здесь: https://github.com/styfle/packagephobia
Обновление 2020
«Размер без упаковки» (в основном размер публикации) доступен на веб-сайте npmjs.com вместе с «Всего файлов». Однако это не рекурсивное значение,
npm install
которое, вероятно, будет намного больше, потому что один пакет, вероятно, зависит от многих пакетов (таким образом, Package Phobia по-прежнему актуален).Также существует ожидающий RFC для функции, которая выводит эту информацию из интерфейса командной строки.
источник
Если вы используете webpack в качестве сборщика модулей, обратите внимание на:
Однозначно рекомендую первый вариант. Он показывает размер в интерактивной древовидной карте. Это поможет вам определить размер пакета в вашем связанном файле.
Другие ответы в этом посте показывают вам размер проекта, но вы можете использовать не все части проекта, например, с встряхиванием дерева. Тогда другие подходы могут не показать вам точного размера.
источник
Попробуйте использовать размер пакета .
https://github.com/egoist/package-size
источник
Если вы используете Visual Studio Code, вы можете использовать расширение под названием Import Cost .
источник
Вы можете проверить npm-module-stats . Это модуль npm, который получает размер модуля npm и его зависимостей без установки или загрузки модуля.
Использование:
Это может показаться немного многословным, но оно решает проблему, которую вы описали должным образом.
источник
"Быстрый и грязный" способ - использовать curl и wzrd.in для быстрой загрузки минифицированного пакета и затем определить размер файла:
curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length
Загрузка уменьшена, но не сжата, но вы получите хорошее представление об относительном размере пакетов при сравнении двух или более из них.
источник
curl -i https://unpkg.com/axios@0.16.1/dist/axios.min.js | grep Content-Length
howfat - еще один инструмент, который может показать общий размер пакета:
источник