Коли я шукаю пакети в NPM, я хотів би побачити розміри пакетів (у КБ або МБ тощо). NPM, схоже, не показує цю інформацію.
Як я можу визначити, скільки потужності пакету NPM додасть до мого проекту?
Коли я шукаю пакети в NPM, я хотів би побачити розміри пакетів (у КБ або МБ тощо). NPM, схоже, не показує цю інформацію.
Як я можу визначити, скільки потужності пакету NPM додасть до мого проекту?
Відповіді:
Ви, напевно, хочете виміряти - це вплив, який має пакет, якщо ви додали його до своєї програми. Більшість інших відповідей визначають лише розмір вихідних файлів, який може бути неточним через вбудовані коментарі, довгі імена var тощо.
Я створив невеличку утиліту, яка розповість вам мінімальний + gzipped розмір пакета після того, як він потрапить у вас в комплекті -
https://cost-of-modules.herokuapp.com
тепер спрямовується на https://bundlephobia.com
дуже корисний інструмент btw.
Погляньте на цей проект вартості модулів . Це пакет npm, який перелічить розмір пакета та кількість дітей.
Установка:
npm install -g cost-of-modules
Використання: запустіть cost-of-modules
у каталозі, в якому ви працюєте.
Я створив інструмент, розмір завантаження npm , який перевіряє розмір тарболу для заданого пакету npm, включаючи всі тарболи в дереві залежностей. Це дає уявлення про вартість (час встановлення, дисковий простір, ресурси часу виконання, аудит безпеки, ...) додавання залежності наперед.
На зображенні вище розмір Tarball - це tar.gz упаковки, а загальний розмір - розмір усіх тарболів. Інструмент досить базовий, але він робить те, що говорить.
Клі інструмент також доступний. Ви можете встановити його так:
npm i -g download-size
І використовуйте його так:
$ download-size request
request@2.83.0: 1.08 MiB
Вихідний код доступний на Github: інструменті api , cli та веб-клієнті .
Я створив Packabia Phobia на початку цього року з надією отримати інформацію про розмір пакета на npmjs.com, а також відстежувати роздуття пакета з часом.
Це розроблено для вимірювання місця на диску після запуску npm install
таких залежностей на стороні сервера, як, наприклад, express
залежності від розробника jest
.
Детальніше про цей інструмент та інші подібні засоби ви можете прочитати тут: https://github.com/styfle/packagephobia
Оновлення 2020 року
"Розпакований розмір" (в основному розмір публікації) доступний на веб-сайті npmjs.com разом із "Загальними файлами". Однак це не рекурсивне значення, яке npm install
, ймовірно, буде набагато більшим, оскільки один пакунок, ймовірно, залежить від багатьох пакетів (таким чином, пакет Phobia все ще актуальний).
Також є RFC, що очікує на розгляд, для функції, яка друкує цю інформацію з CLI.
Якщо ви використовуєте webpack як постачальник модулів, перегляньте:
Я напевно рекомендую перший варіант. Він показує розмір в інтерактивній карті. Це допоможе вам знайти розмір пакета у пакетному файлі.
Інші відповіді в цій публікації показують вам розмір проекту, але, можливо, ви не використовуєте всі частини проекту, наприклад, при струшуванні дерева. Інші підходи тоді можуть не показувати точний розмір.
Спробуйте використовувати розмір упаковки .
npx package-size vue,vue-router,vuex react,react-dom,react-router,redux
Якщо ви використовуєте код Visual Studio, ви можете використовувати розширення під назвою Import Cost .
Це розширення відобразить в редакторі вбудований розмір імпортованого пакету. Розширення використовує webpack з babili-webpack-плагіном, щоб виявити імпортований розмір.
Ви можете перевірити статистику npm-module . Це модуль 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
Завантаження мінімізоване, але не gzipped, але ви добре розумієте відносний розмір пакунків, порівнюючи два чи більше з них.
howfat - це ще один інструмент, який може показувати загальний розмір пакета:
npx howfat jasmine
node_modules
займають atm 21bg на моїй машині;npkill
я можу допомогти вам у цьому ! [введіть опис зображення тут ] ( i.stack.imgur.com/BKbyU.png )