Apa perbedaan praktis antara npm install
dan npm update
? Kapan saya harus menggunakan yang mana?
Apa perbedaan praktis antara npm install
dan 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 install
npm update
Selain itu : install
dan update
secara default menangani devDependencies secara berbeda
npm install
akan menginstal / memperbarui devDependencies kecuali --production
flag ditambahkannpm update
akan mengabaikan devDependencies kecuali --dev
flag ditambahkanKenapa pakai npm install
sama sekali?
Karena npm install
tidak 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>
--force
npm install --save somePackage
save * ke dependensi?
postinstall
dijalankan saat diinstal, tetapi tidak saat diperbarui.
install
dan update
bekerja secara berbeda pada URL git, tag git, dll. Yang ditentukan dalam package.json
maka alangkah baiknya menambahkan kasus-kasus tersebut ke dalam contoh.
1.3.0 -> 1.3.1
Ini 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.json
file dan dependensinya.
Pembaruan npm memperbarui semua paket dalam node_modules
direktori 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 install
atau npm update
? Atau, dengan kata lain, saya sekarang menggunakan npm install
dan tampaknya melakukan pembaruan juga, adakah alasan mengapa saya harus menggunakan npm update
?
update
akan selalu memperbarui ke versi terbaru, terlepas dari package.json, sementara install
akan menghormati versi yang diberikan dalam package.json?
update
menginstal (atau memperbarui ke) versi terbaru dari modul. install
menginstal versi terbaru dari modul jika tidak disajikan jika tidak membuat versi saat ini.
npm update
akan 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 --force
persis apa yang saya inginkan.
Banyak perbedaan telah disebutkan. Ini satu lagi:
Menjalankan npm install
di bagian atas direktori source Anda akan menjalankan berbagai script: prepublish
, preinstall
, install
, postinstall
. Bergantung pada apa yang dilakukan oleh skrip-skrip ini, a npm install
dapat melakukan lebih banyak pekerjaan daripada hanya menginstal dependensi.
Saya baru saja menggunakan use case di mana prepublish
akan menelepon make
dan Makefile
dirancang untuk mengambil dependensi jika package.json
sudah diperbarui. Memanggil npm install
dari dalam Makefile
akan menyebabkan rekursi yang tak terbatas, sementara panggilan npm update
bekerja dengan baik, menginstal semua dependensi sehingga build dapat dilanjutkan meskipun make
dipanggil secara langsung.
redis
modul Anda , dan other_module
memerlukan versi yang lebih lama redis
, npm install other_module
akan menjamin bahwa other_module
akan menggunakan versi yang lebih lama. Itu dapat menambahkan other_module/node_modules/redis
jika 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 update
akan menghilangkan sejumlah besar dependensi di package-lock.json
. Untuk memiliki semua paket yang diperlukan tersedia dan package-lock.json
untuk menjadi benar, saya selalu harus mengeksekusi npm install
setelahnya npm update
.
~1.3
?