Membajak percakapan ini karena saya ingin menunjukkan alat yang membantu mengklaim ruang kosong dari mesin Anda. Rupanya node_modulesmenempati atm 21bg di mesin saya; npkilldapat membantu Anda melakukannya ! [masukkan deskripsi gambar di sini ] ( i.stack.imgur.com/BKbyU.png )
Ahmad Alfy
Jawaban:
181
Apa yang mungkin ingin Anda ukur adalah dampak suatu paket jika Anda ingin menambahkannya ke bundel aplikasi Anda. Sebagian besar jawaban lain akan memperkirakan ukuran file sumber saja, yang mungkin tidak akurat karena komentar sebaris, nama var panjang dll.
Ada utilitas kecil yang saya buat yang akan memberi tahu Anda ukuran min + gzipped paket setelah masuk ke bundel Anda -
Sedikit berlebihan, perlu menginstal ulang semua modul Anda sebelum perhitungan. Tetapi melakukan pekerjaan.
pdem
7
jangan gunakan paket ini - ini membuat folder artefak bernama nodemodules.bak yang menciptakan efek samping yang jelek
Nth.gol
22
Saya telah membuat alat, ukuran unduhan npm , yang memeriksa ukuran tarball untuk paket npm yang diberikan, termasuk semua tarbal di pohon dependensi. Ini memberi Anda gambaran tentang biaya (waktu instalasi, ruang disk, sumber daya runtime, audit keamanan, ...) untuk menambahkan dependensi di muka.
Pada gambar di atas, ukuran Tarball adalah tar.gz dari paket, dan Ukuran total adalah ukuran semua tarball. Alat ini cukup mendasar, tetapi melakukan apa yang dikatakannya.
Sebuah alat cli juga tersedia. Anda dapat menginstalnya seperti ini:
Saya membuat Paket Phobia awal tahun ini dengan harapan untuk mendapatkan informasi ukuran paket ke npmjs.com dan juga melacak paket mengasapi dari waktu ke waktu.
"Ukuran Tidak Dibongkar" (pada dasarnya Ukuran Terbit) tersedia di situs web npmjs.com bersama dengan "Total File". Namun, ini bukan makna rekursif yang npm installkemungkinan akan jauh lebih besar karena satu paket cenderung tergantung pada banyak paket (sehingga Paket Phobia masih relevan).
Ada juga RFC yang tertunda untuk fitur yang mencetak informasi ini dari CLI.
Ini bagus, tetapi mengapa hasilnya sangat berbeda dari bundlephobia? mis. bandingkan hasilnya untuk lodash.lowerfirst
Danyal Aytekin
2
@DanyalAytekin Karena mereka mengukur hal yang berbeda. Jawaban singkat: jika Anda mencari paket front-end gunakan BundlePhobia. Jika Anda mencari paket back-end, gunakan PackagePhobia. Ada lebih banyak detail di readme jika Anda tertarik.
styfle
16
Jika Anda menggunakan webpack sebagai bundler modul Anda lihat:
Saya merekomendasikan opsi pertama. Ini menunjukkan ukuran dalam treemap interaktif. Ini membantu Anda menemukan ukuran paket dalam file yang Anda bundel.
Jawaban lain dalam posting ini menunjukkan ukuran proyek Anda, tetapi Anda mungkin tidak menggunakan semua bagian proyek, misalnya dengan pohon goyang. Maka pendekatan lain mungkin tidak menunjukkan ukuran yang akurat.
Jika Anda menggunakan Visual Studio Code, Anda bisa menggunakan ekstensi yang disebut Biaya Impor .
Ekstensi ini akan menampilkan inline di editor ukuran paket yang diimpor. Ekstensi ini menggunakan webpack dengan babili-webpack-plugin untuk mendeteksi ukuran yang diimpor.
Ekstensi ini tidak berfungsi untuk semua paket. Ini menunjukkan Menghitung ... dan kemudian tiba-tiba menghilang bahkan setelah mengubah nilai batas waktu ke angka yang sangat besar
shreyansh
2
Anda bisa melihat npm-module-stats . Ini adalah modul npm yang mendapatkan ukuran modul npm dan dependensinya tanpa menginstal atau mengunduh modul.
Pemakaian:
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);
});
Ini mungkin tampak sedikit bertele-tele tetapi itu memecahkan masalah yang Anda uraikan dengan tepat.
Unduhan diperkecil tetapi tidak di-gzip, tetapi Anda mendapatkan ide bagus tentang ukuran relatif paket ketika Anda membandingkan dua atau lebih dari itu.
node_modules
menempati atm 21bg di mesin saya;npkill
dapat membantu Anda melakukannya ! [masukkan deskripsi gambar di sini ] ( i.stack.imgur.com/BKbyU.png )Jawaban:
Apa yang mungkin ingin Anda ukur adalah dampak suatu paket jika Anda ingin menambahkannya ke bundel aplikasi Anda. Sebagian besar jawaban lain akan memperkirakan ukuran file sumber saja, yang mungkin tidak akurat karena komentar sebaris, nama var panjang dll.
Ada utilitas kecil yang saya buat yang akan memberi tahu Anda ukuran min + gzipped paket setelah masuk ke bundel Anda -
https://bundlephobia.com
sumber
https://cost-of-modules.herokuapp.com
sekarang mengarah kehttps://bundlephobia.com
alat yang sangat berguna btw.Lihatlah proyek modul biaya ini. Ini adalah paket npm yang akan mencantumkan ukuran paket dan jumlah anak.
Instalasi:
npm install -g cost-of-modules
Penggunaan: Jalankan
cost-of-modules
di direktori tempat Anda bekerja.sumber
Saya telah membuat alat, ukuran unduhan npm , yang memeriksa ukuran tarball untuk paket npm yang diberikan, termasuk semua tarbal di pohon dependensi. Ini memberi Anda gambaran tentang biaya (waktu instalasi, ruang disk, sumber daya runtime, audit keamanan, ...) untuk menambahkan dependensi di muka.
Pada gambar di atas, ukuran Tarball adalah tar.gz dari paket, dan Ukuran total adalah ukuran semua tarball. Alat ini cukup mendasar, tetapi melakukan apa yang dikatakannya.
Sebuah alat cli juga tersedia. Anda dapat menginstalnya seperti ini:
Dan gunakan seperti ini:
Kode sumber tersedia di Github: api , cli tool dan klien web .
sumber
Saya membuat Paket Phobia awal tahun ini dengan harapan untuk mendapatkan informasi ukuran paket ke npmjs.com dan juga melacak paket mengasapi dari waktu ke waktu.
https://packagephobia.com
Ini dirancang untuk mengukur ruang disk setelah Anda menjalankan
npm install
untuk dependensi sisi server sepertiexpress
atau dev dependensi sukajest
.Anda dapat membaca lebih lanjut tentang alat ini dan alat serupa lainnya di readme di sini: https://github.com/styfle/packagephobia
Perbarui 2020
"Ukuran Tidak Dibongkar" (pada dasarnya Ukuran Terbit) tersedia di situs web npmjs.com bersama dengan "Total File". Namun, ini bukan makna rekursif yang
npm install
kemungkinan akan jauh lebih besar karena satu paket cenderung tergantung pada banyak paket (sehingga Paket Phobia masih relevan).Ada juga RFC yang tertunda untuk fitur yang mencetak informasi ini dari CLI.
sumber
Jika Anda menggunakan webpack sebagai bundler modul Anda lihat:
Saya merekomendasikan opsi pertama. Ini menunjukkan ukuran dalam treemap interaktif. Ini membantu Anda menemukan ukuran paket dalam file yang Anda bundel.
Jawaban lain dalam posting ini menunjukkan ukuran proyek Anda, tetapi Anda mungkin tidak menggunakan semua bagian proyek, misalnya dengan pohon goyang. Maka pendekatan lain mungkin tidak menunjukkan ukuran yang akurat.
sumber
Coba gunakan ukuran paket .
https://github.com/egoist/package-size
sumber
Jika Anda menggunakan Visual Studio Code, Anda bisa menggunakan ekstensi yang disebut Biaya Impor .
sumber
Anda bisa melihat npm-module-stats . Ini adalah modul npm yang mendapatkan ukuran modul npm dan dependensinya tanpa menginstal atau mengunduh modul.
Pemakaian:
Ini mungkin tampak sedikit bertele-tele tetapi itu memecahkan masalah yang Anda uraikan dengan tepat.
sumber
Cara "cepat & kotor" adalah dengan menggunakan curl dan wzrd.in untuk mengunduh paket yang diperkecil dengan cepat dan kemudian mengambil ukuran file:
curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length
Unduhan diperkecil tetapi tidak di-gzip, tetapi Anda mendapatkan ide bagus tentang ukuran relatif paket ketika Anda membandingkan dua atau lebih dari itu.
sumber
curl -i https://unpkg.com/[email protected]/dist/axios.min.js | grep Content-Length
howfat adalah satu lagi alat yang dapat menunjukkan ukuran paket total:
sumber