আমি এনপিএম প্যাকেজগুলির আকারটি কীভাবে দেখতে পারি?


129

আমি যখন এনপিএম-এ প্যাকেজগুলি অনুসন্ধান করি, আমি প্যাকেজ আকার দেখতে চাই (কেবি বা এমবিতে, ইত্যাদি)। এনপিএম এই তথ্যটি দেখায় বলে মনে হচ্ছে না।

কোনও এনপিএম প্যাকেজ আমার প্রকল্পে কতটা ব্লাট যুক্ত করবে তা আমি কীভাবে নির্ধারণ করতে পারি?


এই কথোপকথনটিকে হাইজ্যাক করা কারণ আমি এমন একটি সরঞ্জামের দিকে ইঙ্গিত করতে চাই যা আপনার মেশিন থেকে মুক্ত স্থান দাবি করতে সহায়তা করে। দৃশ্যত node_modulesআমার মেশিনে এটিএম 21 বিজি দখল করুন; npkillআপনাকে এটি করতে সহায়তা করতে পারে ! [চিত্রের বিবরণ এখানে প্রবেশ করুন ] ( i.stack.imgur.com/BKbyU.png )
আহমদ আলফাই

উত্তর:


181

আপনি সম্ভবত যা পরিমাপ করতে চান তা হ'ল যদি আপনার অ্যাপ্লিকেশন বান্ডেলে এটি যুক্ত করা হয় তবে কোনও প্যাকেজটির প্রভাব। অন্যান্য উত্তরগুলির বেশিরভাগই কেবল উত্স ফাইলগুলির আকারের অনুমান করবে, যা সম্ভবত ইনলাইন মন্তব্য, দীর্ঘতর বর্ণ ইত্যাদির কারণে ভুল c

আমি তৈরি একটি ছোট্ট ইউটিলিটি রয়েছে যা প্যাকেজটি আপনার বান্ডিল হয়ে যাওয়ার পরে আপনাকে ন্যূনতম + জিজিপ আকার জানাবে -

https://bundlephobia.com


5
ধন্যবাদ! এটি সত্যিই দুর্দান্ত ব্যবহার!
ব্যারনভনকেনহফেন

3
সুন্দর ইউআই! ধন্যবাদ এটি আমি ঠিক যা খুঁজছিলাম ছিল। যদিও সুপার বড় প্যাকেজগুলিতে চিরকালের জন্য নেয়।
প্রোটো ইভেনজিলিয়ন

3
@ ব্ল্যাকটি ব্যাক আপ হওয়া উচিত
শুভম কানোদিয়া

6
এই লিঙ্ক: https://cost-of-modules.herokuapp.comএখন https://bundlephobia.com একটি খুব দরকারী সরঞ্জাম বিটিডব্লু নির্দেশ ।
অ্যাডাম ওয়েবার

4
এটি যথেষ্ট দুর্দান্ত যে এটি কেবলমাত্র প্রতিটি প্যাকেজের জন্য এনপিএম পৃষ্ঠাগুলিতে যুক্ত করা উচিত
এডিডেমোয়ায়

69

এই কটাক্ষপাত খরচ অফ মডিউল প্রকল্পের। এটি একটি এনপিএম প্যাকেজ যা প্যাকেজের আকার এবং বাচ্চার সংখ্যার তালিকা তৈরি করবে।

স্থাপন: npm install -g cost-of-modules

ব্যবহার: cost-of-modulesআপনি যে ডিরেক্টরিতে কাজ করছেন তাতে চালান ।

এখানে চিত্র বর্ণনা লিখুন


2
কিছুটা ওভারকিল, এটি গণনার আগে আপনার সমস্ত মডিউল পুনরায় ইনস্টল করা প্রয়োজন। কিন্তু কাজ করে।
পিডিএম

7
এই প্যাকেজটি ব্যবহার করবেন না - এটি নোডমডিউলস.বাক নামে একটি আর্টিক্যাক্ট ফোল্ডার তৈরি করে যা কুৎসিত পার্শ্ব প্রতিক্রিয়া তৈরি করে
Nth.gol

22

আমি একটি সরঞ্জাম তৈরি করেছি, এনএমপি ডাউনলোড আকার , যা নির্ভরতা গাছের সমস্ত টারবাল সহ একটি প্রদত্ত এনএমপি প্যাকেজের জন্য টারবাল আকারটি পরীক্ষা করে। এটি আপনাকে নির্ভরতা সামনের দিকে যুক্ত করার ব্যয় (ইনস্টল সময়, ডিস্কের স্থান, রানটাইম রিসোর্স, সুরক্ষা নিরীক্ষা, ...) সম্পর্কে ধারণা দেয়।

ওয়েবপ্যাক ডাউনলোড আকার

উপরের ছবিতে, টারবাল আকার হ'ল প্যাকেজের টার.gz এবং মোট আকার সমস্তসরঞ্জামটি বেশ মৌলিক, তবে এটি যা বলে তা তাই করে।

একটি ক্লাই্ট সরঞ্জামও উপলব্ধ। আপনি এটির মতো এটি ইনস্টল করতে পারেন:

npm i -g download-size

এবং এটি এর মতো ব্যবহার করুন:

$ download-size request
request@2.83.0: 1.08 MiB

সোর্স কোডটি গিথুব উপলভ্য: এপিআই , ক্লাইম সরঞ্জাম এবং ওয়েব ক্লায়েন্ট


20

আমি প্যাকেজ ফোবিয়াকে এই বছরের শুরুতে এনএমপিজেএস.কম এ প্যাকেজ আকারের তথ্য পেতে এবং সময়ের সাথে সাথে প্যাকেজ ব্লাট ট্র্যাক করার আশায় তৈরি করেছি।

https://packagephobia.com

চিত্র

আপনি যেমন npm installসার্ভার-সাইড নির্ভরতা expressবা দেব নির্ভরতাগুলির জন্য চালনার পরে এটি ডিস্কের স্থান পরিমাপের জন্য ডিজাইন করা হয়েছেjest

আপনি এখানে রিডমিমে এই সরঞ্জাম এবং অন্যান্য অনুরূপ সরঞ্জামগুলি সম্পর্কে আরও পড়তে পারেন: https://github.com/styfle/packagephobia


আপডেট 2020

"আনপ্যাকড সাইজ" (মূলত প্রকাশের আকার) এনপিএমজেএস.কম ওয়েবসাইটে "মোট ফাইলগুলি" সহ উপলব্ধ। তবে এটি পুনরাবৃত্ত অর্থ নয় যা npm installসম্ভবত অনেক বড় হবে কারণ একক প্যাকেজ সম্ভবত অনেকগুলি প্যাকেজের উপর নির্ভর করে (সুতরাং প্যাকেজ ফোবিয়া এখনও প্রাসঙ্গিক)।

কোনও বৈশিষ্ট্যের জন্য একটি মুলতুবি আরএফসি রয়েছে যা এই তথ্যটি সিএলআই থেকে মুদ্রণ করে।


এটি দুর্দান্ত, তবে এর ফলাফলগুলি কেন বান্ডেলফোবিয়ার থেকে এত স্পষ্টভাবে আলাদা? উদাহরণস্বরূপ লড্যাশ.লুয়ারফার্স্টের জন্য ফলাফলগুলি তুলনা করুন
দানিয়াল আয়তেকিন

2
@ ড্যানিয়েল আয়েটकिन কারণ তারা বিভিন্ন জিনিস মাপছে। সংক্ষিপ্ত উত্তর: আপনি যদি ফ্রন্ট-এন্ড প্যাকেজটির দিকে তাকাচ্ছেন তবে বুঁদেলফোবিয়া ব্যবহার করুন। আপনি যদি কোনও ব্যাক-এন্ড প্যাকেজটির দিকে তাকিয়ে থাকেন তবে প্যাকেজফোবিয়া ব্যবহার করুন। আপনি যদি আগ্রহী হন তবে রেডমে আরও বিশদ রয়েছে ।
স্টায়ফ্লে

16

যদি আপনি ওয়েবপ্যাকটি ব্যবহার করছেন তবে আপনার মডিউল বান্ডিলারটি একবার দেখুন:

আমি অবশ্যই প্রথম বিকল্পটি সুপারিশ করছি। এটি ইন্টারেক্টিভ ট্রিম্যাপে আকার দেখায়। এটি আপনাকে আপনার বান্ডিলযুক্ত ফাইলে প্যাকেজের আকার খুঁজতে সহায়তা করে।

ওয়েবপ্যাক বান্ডিল বিশ্লেষক

এই পোস্টের অন্যান্য উত্তরগুলি আপনাকে প্রকল্পের আকার দেখায় তবে আপনি সম্ভবত প্রকল্পের সমস্ত অংশ ব্যবহার করছেন না, উদাহরণস্বরূপ গাছ কাঁপানো। অন্য পদ্ধতিগুলি আপনাকে সঠিক আকার নাও দেখাতে পারে।



4

আপনি যদি ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করেন তবে আপনি আমদানি ব্যয় নামে একটি এক্সটেনশন ব্যবহার করতে পারেন ।

এই এক্সটেনশানটি আমদানিকৃত প্যাকেজটির আকারটিতে সম্পাদকরে ইনলাইন প্রদর্শন করবে। আমদানি করা আকারটি সনাক্ত করতে এক্সটেনশানটি ব্যাবিলি-ওয়েবপ্যাক-প্লাগইন সহ ওয়েবপ্যাকটি ব্যবহার করে।


ওয়েবস্টোরমের জন্যও উপলব্ধ।
জোটিডি

এই এক্সটেনশনটি সমস্ত প্যাকেজগুলির জন্য কাজ করে না। এটি গণনা দেখায় ... এবং তারপরে সময়সীমার মানটি খুব বড় সংখ্যায় পরিবর্তিত করার পরেও হঠাৎ অদৃশ্য হয়ে যায়
শ্রেয়ানশ

2

আপনি এনপিএম-মডিউল-পরিসংখ্যান পরীক্ষা করে দেখতে পারেন । এটি একটি এনপিএম মডিউল যা মডিউলটি ইনস্টল বা ডাউনলোড না করে একটি এনএমপি মডিউল এবং এর নির্ভরতাগুলির আকার পায়।

ব্যবহার:

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);
});

এটি সামান্য ভার্জোজ মনে হতে পারে তবে এটি আপনার যথাযথভাবে বর্ণিত সমস্যাটি সমাধান করে।


1
2 য় স্তরের ডিপগুলি সম্পর্কে কী?
শারিকভ ভ্লাদিস্লাভ

2

একটি "দ্রুত এবং নোংরা" উপায়টি হ'ল প্যাকেজটি দ্রুত ডাউনলোড করার জন্য কার্ল এবং wzrd.in ব্যবহার করা এবং তারপরে ফাইলের আকার গ্রেপ করুন:

curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length

ডাউনলোডটি সংক্ষিপ্ত করা হয়েছে তবে জিপ করা হয়নি, তবে আপনি যখন দুটি বা তার বেশি সংখ্যক তুলনা করেন তখন প্যাকেজগুলির আপেক্ষিক আকার সম্পর্কে আপনি একটি ভাল ধারণা পাবেন।


2
ঠিক আছে, তখন unpkg.com এর মতো আর একটি পরিষেবা ব্যবহার করুন । উদাহরণ:curl -i https://unpkg.com/axios@0.16.1/dist/axios.min.js | grep Content-Length
thoragio

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.