Anda dapat menggunakan npm-prune untuk menghapus paket-paket yang tidak tersedia.
npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
Perintah ini menghapus paket "asing". Jika nama paket disediakan, maka hanya paket yang cocok dengan salah satu nama yang disediakan yang dihapus.
Paket ekstranous adalah paket yang tidak terdaftar dalam daftar dependensi paket induk.
Jika --production bendera ditentukan atau NODE_ENV variabel lingkungan diatur untuk produksi , perintah ini akan menghapus paket yang ditentukan dalam Anda devDependencies . Pengaturan --tidak ada produksi akan meniadakan NODE_ENV diatur ke produksi .
Jika flag --dry-run digunakan maka tidak ada perubahan yang akan dibuat.
Jika flag --json digunakan maka perubahan npm prune yang dibuat (atau akan dibuat dengan --dry-run ) dicetak sebagai objek JSON.
Dalam operasi normal dengan paket-lock diaktifkan, modul asing dipangkas secara otomatis ketika modul diinstal dan Anda hanya akan memerlukan perintah ini dengan flag --produksi .
Jika Anda telah menonaktifkan kunci-paket maka modul-modul tambahan tidak akan dihapus dan terserah Anda untuk menjalankan npm prune dari waktu ke waktu untuk menghapusnya.
Gunakan npm-dedupe untuk mengurangi duplikasi
npm dedupe
npm ddp
Mencari pohon paket lokal dan mencoba menyederhanakan struktur keseluruhan dengan memindahkan dependensi lebih jauh ke pohon, di mana mereka dapat lebih efektif dibagikan oleh beberapa paket dependen.
Sebagai contoh, perhatikan grafik dependensi ini:
a
+-- b <-- depends on c@1.0.x
| `-- c@1.0.3
`-- d <-- depends on c@~1.0.9
`-- c@1.0.10
Dalam hal ini, npm-dedupe akan mengubah pohon menjadi:
a
+-- b
+-- d
`-- c@1.0.10
Karena sifat hirarkis modul lookup node, b dan d keduanya akan mendapatkan ketergantungan mereka dipenuhi oleh paket c tunggal di tingkat akar pohon.
Algoritma deduplikasi berjalan pohon, memindahkan setiap ketergantungan sejauh mungkin di pohon, bahkan jika duplikat tidak ditemukan. Ini akan menghasilkan pohon yang rata dan terduplikasi.
node_modules
saat dihapus dari masing-masing folderpackage.json
?