Apa perbedaan praktis antara npm installdan npm update? Kapan saya harus menggunakan yang mana?
Apa perbedaan praktis antara npm installdan npm update? Kapan saya harus menggunakan yang mana?
Jawaban:
Perbedaan antara instalasi npm dan penanganan pembaruan npm dari versi paket yang ditentukan dalam package.json :
{
"name": "my-project",
"version": "1.0", // install update
"dependencies": { // ------------------
"already-installed-versionless-module": "*", // ignores "1.0" -> "1.1"
"already-installed-semver-module": "^1.4.3" // ignores "1.4.3" -> "1.5.2"
"already-installed-versioned-module": "3.4.1" // ignores ignores
"not-yet-installed-versionless-module": "*", // installs installs
"not-yet-installed-semver-module": "^4.2.1" // installs installs
"not-yet-installed-versioned-module": "2.7.8" // installs installs
}
}
Ringkasan : Satu-satunya perbedaan besar adalah modul yang sudah diinstal dengan versi fuzzy ...
npm installnpm updateSelain itu : installdan updatesecara default menangani devDependencies secara berbeda
npm installakan menginstal / memperbarui devDependencies kecuali --productionflag ditambahkannpm updateakan mengabaikan devDependencies kecuali --devflag ditambahkanKenapa pakai npm installsama sekali?
Karena npm installtidak lebih ketika Anda melihat selain menangani dependensi Anda di package.json. Seperti yang Anda lihat di instal npm, Anda dapat ...
PATH) menggunakannpm install -g <name>--forcenpm install --save somePackagesave * ke dependensi?
postinstalldijalankan saat diinstal, tetapi tidak saat diperbarui.
installdan updatebekerja secara berbeda pada URL git, tag git, dll. Yang ditentukan dalam package.jsonmaka alangkah baiknya menambahkan kasus-kasus tersebut ke dalam contoh.
1.3.0 -> 1.3.1Ini mirip dengan ^1.3.0, di mana ^pembaruan versi utama, yaitu 1.3.0 -> 1.4.0.
npm install menginstal semua modul yang terdaftar pada package.jsonfile dan dependensinya.
Pembaruan npm memperbarui semua paket dalam node_modulesdirektori dan dependensinya.
npm install express menginstal hanya module express dan dependensinya.
npm update express update express module (dimulai dengan npm@2.x, ia tidak memperbarui dependensinya).
Jadi pembaruan adalah untuk saat Anda sudah memiliki modul dan ingin mendapatkan versi baru.
npm installatau npm update? Atau, dengan kata lain, saya sekarang menggunakan npm installdan tampaknya melakukan pembaruan juga, adakah alasan mengapa saya harus menggunakan npm update?
updateakan selalu memperbarui ke versi terbaru, terlepas dari package.json, sementara installakan menghormati versi yang diberikan dalam package.json?
updatemenginstal (atau memperbarui ke) versi terbaru dari modul. installmenginstal versi terbaru dari modul jika tidak disajikan jika tidak membuat versi saat ini.
npm updateakan memperbarui ke versi terbaru berdasarkan pada package.json Anda, tidak peduli itu Jika Anda memiliki "express": "3.x" dan Anda berada pada versi 3.1.0, itu akan diperbarui ke tag 3.x terbaru. Jika ada versi 4.x, itu tidak akan menginstal yang terbaru.
Dalam kebanyakan kasus, ini akan menginstal versi terbaru dari modul yang diterbitkan pada npm.
npm install express --save
atau lebih baik untuk meningkatkan modul ke penggunaan versi terbaru:
npm install express@latest --save --force
--save: Paket akan muncul di dependensi Anda.
Info lebih lanjut: npm-install
npm install express@latest --save --forcepersis apa yang saya inginkan.
Banyak perbedaan telah disebutkan. Ini satu lagi:
Menjalankan npm installdi bagian atas direktori source Anda akan menjalankan berbagai script: prepublish, preinstall, install, postinstall. Bergantung pada apa yang dilakukan oleh skrip-skrip ini, a npm installdapat melakukan lebih banyak pekerjaan daripada hanya menginstal dependensi.
Saya baru saja menggunakan use case di mana prepublishakan menelepon makedan Makefiledirancang untuk mengambil dependensi jika package.jsonsudah diperbarui. Memanggil npm installdari dalam Makefileakan menyebabkan rekursi yang tak terbatas, sementara panggilan npm updatebekerja dengan baik, menginstal semua dependensi sehingga build dapat dilanjutkan meskipun makedipanggil secara langsung.
redismodul Anda , dan other_modulememerlukan versi yang lebih lama redis, npm install other_moduleakan menjamin bahwa other_moduleakan menggunakan versi yang lebih lama. Itu dapat menambahkan other_module/node_modules/redisjika perlu.
npm update: instal dan perbarui dengan modul simpul terbaru yang ada di package.json
npm install: instal modul simpul yang didefinisikan dalam package.json (tanpa pembaruan)
npm updateakan menghilangkan sejumlah besar dependensi di package-lock.json. Untuk memiliki semua paket yang diperlukan tersedia dan package-lock.jsonuntuk menjadi benar, saya selalu harus mengeksekusi npm installsetelahnya npm update.
~1.3?