Bagaimana Anda menginstal ulang dependensi aplikasi menggunakan npm?

385

Apakah ada cara sederhana untuk menginstal ulang semua paket yang bergantung pada aplikasi saya (mis. Mereka ada di folder apps_ode_modules saya)?

trusktr
sumber
4
npm rebuildmungkin juga membantu beberapa masalah dengan dependensi asli
Francisco Presencia
1
Jika itu membantu orang lain: Jika Anda hanya ingin menginstal ulang satu paket, npm update <packageName>berfungsi dengan baik
rinogo

Jawaban:

618

Cara termudah yang bisa saya lihat adalah menghapus node_modulesfolder dan menjalankan npm install.

Vadim Baryshev
sumber
28
Sepakat; dengan asumsi Anda telah membuat package.jsonfile untuk aplikasi Anda.
JohnnyHK
9
Berhati-hatilah bahwa menjalankan npm installsetelah menghapus node_modulesdirektori dapat menghasilkan berbagai versi dependensi yang ditentukan package.jsonsaat ditarik turun. Jika Anda memerlukan versi dependensi yang sangat spesifik untuk aplikasi Anda, berhati-hatilah dan lihat npm shrinkwrapatau periksa di node_modulesdirektori Anda untuk kontrol sumber.
smithclay
10
@smithclay Saya telah mendefinisikan versi eksplisit dari paket di package.json aplikasi saya, jadi seharusnya tidak apa-apa, kan?
trusktr
@vadim Saya melakukan beberapa pengujian pada perilaku npm installdan selalu menginstal ulang dependensi dan memutakhirkan paket ke versi terbaru sebagaimana diizinkan oleh package.json. Jadi menghapus node_modulesfolder tidak diperlukan kecuali Anda pikir itu rusak. Apakah ada alasan Anda berpikir itu harus dihapus? Namun, jika tujuannya adalah untuk menghilangkan paket yang asing maka Anda bisa menjalankan npm prunebukannya
himanshu
1
@ himanshu Anda benar npm installmeningkatkan semua modul ke status package.json. Tetapi pertanyaannya adalah bagaimana menginstal ulang semua paket . Jadi mereka mungkin rusak atau mungkin perlu membangun kembali bagian biner setelah memutakhirkan node.js verison.
Vadim Baryshev
96

Cara yang benar adalah dengan mengeksekusi npm update. Ini adalah perintah yang sangat kuat, memperbarui paket yang hilang dan juga memeriksa apakah versi yang lebih baru dari paket yang sudah diinstal dapat digunakan.

Baca Intro to NPM untuk memahami apa yang dapat Anda lakukan dengan npm.

himanshu
sumber
58
Tetapi jika tidak ada paket yang lebih baru maka ini tidak akan melakukan apa-apa, kan? Saya mencoba untuk memaksa menginstal ulang bahkan jika paket tersebut sudah pada versi terbaru.
trusktr
2
Jika tidak ada paket yang hilang, maka itu akan memeriksa apakah dapat menggunakan versi terbaru dari paket (termasuk dependensi paket) yang tercantum dalam package.json. Jadi, pada dasarnya itu akan meningkatkan paket jika memungkinkan. Tetapi itu tidak akan menginstal ulang. Jika Anda ingin melakukannya dengan menggunakan perintah, Anda dapat menjalankan npm uninstall <package_name>untuk menghapus paket tertentu atau mengeksekusi npm uninstalluntuk menghapus semua paket.
himanshu
1
Saya mencoba melakukan npm uninstalltanpa menentukan paket tetapi itu menimbulkan kesalahan.
trusktr
Apakah Anda memiliki package.json di direktori folder tempat Anda mengeksekusi ini? Jika Anda menghapus paket global maka Anda perlu menambahkan -g
himanshu
1
Tautan yang Anda berikan sudah mati, dapatkah Anda memberikan yang baru? (Saya menemukan ini tetapi saya tidak yakin itu dapat diterima untuk mengubahnya)
Motti
64

Sebagian besar waktu saya menggunakan perintah berikut untuk mencapai instal ulang lengkap semua modul simpul (pastikan Anda berada di folder proyek).

rm -rf node_modules && npm install

Anda juga dapat menjalankan npm cache cleansetelah menghapus node_modulesfolder untuk memastikan tidak ada dependensi cache.

0x1ad2
sumber
48

npmmemperbarui perintah CLI untuk installdan menambahkan --forcebendera.

npm install --force

The --force(atau -f) argumen akan memaksa npmuntuk mengambil sumber daya jauh bahkan jika salinan lokal ada pada disk.

Lihat npm install

Itsik Avidan
sumber
Hebat, bekerja juga dengan 'git + github.com ...'!
Toni Bünter
12

Anda dapat menggunakan modul instal ulang yang ditemukan di npm.

Setelah menginstalnya, Anda dapat menggunakan perintah berikut:

reinstall

Satu-satunya perbedaan dengan menghapus node_modulesfolder secara manual dan membuatnya npm installadalah bahwa perintah ini secara otomatis menghapus cache npm. Jadi, Anda bisa mendapatkan tiga langkah dalam satu perintah.

upd: npx reinstall adalah cara untuk menjalankan perintah ini tanpa menginstal paket secara global (hanya untuk npm5 +)

deksden
sumber
1
@ g00glen00b Saya telah diedit sehingga sekarang tidak termasuk informasi yang berguna tanpa hyperlink
Rob
@ g00glen00b Tidak apa-apa; itu tidak menjadikan ini kandidat untuk dihapus. Silakan lihat posting ini - Secara khusus membahas jawaban singkat dengan tautan, asalkan ada beberapa informasi yang berguna (yaitu, nama perpustakaan) ketika hyperlink dihapus
Rob
6

Anda dapat melakukan ini dengan satu perintah sederhana:

npm ci
Joeri
sumber
Ini jawaban yang benar!
Victor Calatramas
1

Untuk Windows bisa Anda gunakan

(if exist node_modules rmdir node_modules /q /s) && npm install

yang menghapus node_modulesdirektori dan melakukan npm installitu. Penghapusan sebelum menginstal memastikan bahwa semua paket diinstal ulang.

michal.jakubeczy
sumber
0

Ikuti langkah ini untuk menginstal ulang modul simpul dan memperbaruinya

berfungsi bahkan jika folder node_modules tidak ada. sekarang jalankan perintah berikut secara sinkron. Anda juga dapat menggunakan "pembaruan npm" tapi saya rasa ini lebih disukai

npm outdated // not necessary to run this command, but this will show outdated dependencies

npm install -g npm-check-updates // to install the "ncu" package

ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version

npm install: will install dependencies in your package.json file.

jika Anda baik-baik saja dengan versi dependensi Anda di file package.json Anda, tidak perlu mengikuti langkah-langkah itu jalankan saja

 npm install
Pedro JR
sumber