Apakah ada cara untuk mendapatkan npm untuk menghapus semua modul di bawah node_modules? Sesuatu seperti npm yang membangun kembali yang menghapus semua artefak yang dibangun tetapi tidak membangunnya kembali?
Kupikir kau tidak akan pernah bertanya. Saya telah memeriksa direktori node_modules saya ke git seperti yang direkomendasikan di mikealrogers.com/posts/nodemodules-in-git.html . Ketika saya menambahkan modul baru atau memperbarui yang sekarang, saya berakhir dengan membangun artefak di git yang seharusnya tidak ada di sana dan harus membersihkannya. Saya berpikir jika saya bisa membersihkannya terlebih dahulu prosesnya akan berjalan sedikit lebih lancar.
Dave Causey
1
Satu catatan singkat: sekarang NPM mendukung shrinkwrap(lihat npmjs.org/doc/shrinkwrap.html ), Anda dapat mengunci versi SEMUA dependensi Anda (bukan hanya yang tingkat atas).
Michelle Tilley
2
Tidak memiliki fitur ini menyebalkan untuk pengembangan lintas platform juga. Kami mengembangkan di Mac dan menjalankan CI di Linux, dan perlu menghapus direktori node_modules dan menginstal ulang sepenuhnya setiap kali kami membangun di Linux, yang menghabiskan banyak waktu.
JBCP
4
@ JBCP Anda salah melakukannya. Yang harus Anda lakukan adalah menginstal modul di packages.json(menggunakan npm --save) dan memasukkan node_modulesdirektori .gitignore(jika menggunakan git ). CI seharusnya tidak menarik node_modules Anda, tetapi jalankan npm install. Akhirnya, jika mengunduh dari npm registry terlalu lama, gunakan sesuatu seperti sinopia untuk menyimpannya.
Bojan Markovic
1
@ BojanMarkovic - Anda benar, ini adalah bagaimana proyek kami diatur sekarang. Komentar saya di atas berasal dari sekitar setahun yang lalu. Ada beberapa proyek yang merekomendasikan melakukan node_modules ke Git, tapi itu jelas tidak benar.
Ini akan menghapus sumber node_modules serta output yang dikompilasi, jadi tidak menjawab pertanyaan.
theGecko
Jika Anda memiliki dependensi yang ditautkan dengan tautan npm, sebaiknya hapus juga modul-modul ini di direktori sumbernya yang bisa sangat menyakitkan ...
cschuff
12
Saya menambahkan ini ke saya package.json: "clean": "rm -rf node_modules", "reinstall": "npm run clean && npm install", "rebuild": "npm run clean && npm install && npm run build",. Tampaknya bekerja dengan baik.
Lucas
5
Untuk windows> rd node_modules / s
Ishara Samantha
2
@Lucas Anda harus memposting ini jawaban karena itu yang paling cocok
Joseph
57
Saya menambahkan ini ke package.json saya:
"build":"npm build","clean":"rm -rf node_modules","reinstall":"npm run clean && npm install","rebuild":"npm run clean && npm install && npm run build",
Saya merasa sangat aneh bahwa fungsi dasar seperti itu, yang sebenarnya direkomendasikan oleh npm, memerlukan peretasan untuk mencapainya. Apa yang dilakukan orang lain? Abaikan saja rekomendasi dan gunakan npm install?
VitalyB
5
Dalam kata tidak .
Dalam dua, belum .
Namun, ada masalah terbuka untuk --no-buildbendera npm installuntuk melakukan instalasi tanpa bangunan, yang dapat digunakan untuk melakukan apa yang Anda minta.
shrinkwrap
(lihat npmjs.org/doc/shrinkwrap.html ), Anda dapat mengunci versi SEMUA dependensi Anda (bukan hanya yang tingkat atas).packages.json
(menggunakannpm --save
) dan memasukkannode_modules
direktori.gitignore
(jika menggunakan git ). CI seharusnya tidak menarik node_modules Anda, tetapi jalankannpm install
. Akhirnya, jika mengunduh dari npm registry terlalu lama, gunakan sesuatu seperti sinopia untuk menyimpannya.Jawaban:
Anda cukup menghapus direktori node_module
sumber
package.json
:"clean": "rm -rf node_modules", "reinstall": "npm run clean && npm install", "rebuild": "npm run clean && npm install && npm run build",
. Tampaknya bekerja dengan baik.Saya menambahkan ini ke package.json saya:
Tampaknya bekerja dengan baik.
sumber
clean
harus didefinisikan di package.json!Anda dapat memanfaatkan perintah 'npm cache' yang mengunduh tarball paket dan membukanya di direktori cache npm.
Sumber kemudian dapat disalin di.
Dengan menggunakan gagasan yang diperoleh dari https://groups.google.com/forum/?fromgroups=#!topic/npm-/mwLuZZkHkfU, saya membuat skrip simpul berikut. Tidak ada jaminan, YMMV, dan sebagainya.
sumber
npm install
?Dalam kata tidak .
Dalam dua, belum .
Namun, ada masalah terbuka untuk
--no-build
benderanpm install
untuk melakukan instalasi tanpa bangunan, yang dapat digunakan untuk melakukan apa yang Anda minta.Lihat masalah terbuka ini .
sumber
Coba https://github.com/voidcosmos/npkill
itu akan menemukan semua node_modules dan membiarkan Anda menghapusnya.
sumber
Untuk lingkungan windows:
sumber
Saya telah menambahkan beberapa baris di dalam package.json:
Jika Anda ingin
clean
hanya Anda dapat menggunakan inirimraf node_modules
.sumber
Sebenarnya ada perintah khusus untuk pekerjaan ini
Ini akan menghapus
node_modules
direktori dan akan menginstal paket-paket yang berkaitan denganpackage-lock.json
file AndaInfo lebih lanjut: https://docs.npmjs.com/cli/ci.html
sumber