Apa opsi --save untuk instalasi npm?

2039

Saya melihat beberapa tutorial di mana perintahnya adalah:

npm install --save

Apa --savemaksud dari opsi ini?

Tidak dapat menemukan jawabannya di Google.

Dmitri
sumber
32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie
7
Anda dapat menggunakan pintasan -S dan -D di sana -S adalah --save dan -D adalah '--save-dev. --save (atau -S sederhana): Paket akan muncul di dependensi Anda. --save-dev (atau -D sederhana): Paket akan muncul di devDependencies Anda.
Gil Epshtain
5
@WiredPrairie terima kasih saya coba npm install (--help | -h | -help ..)dan tidak ada.
juliangonzalez
2
thx @Dmitri, saya punya masalah yang sama. ayolah NPM tambahkan itu ke halaman MAN Anda untuk alat Anda
Erdinc Ay
67
Saya tidak mengerti alasan di balik keputusan untuk menghapus bahkan hanya menyebutkan opsi ini dari dokumen dan halaman bantuan tanpa juga mencela itu, paling tidak, dengan peringatan di alat itu sendiri. Sementara itu para pemula terpapar melalui banyak tutorial. Kemudian mereka mencoba mencari tahu apa yang dilakukannya dan harus membuang 20 menit membaca dokumen, untuk akhirnya membaca riwayat npm pada stackoverflow. Anehnya mencegah pemborosan besar-besaran semacam ini (jika popularitas pertanyaannya merupakan indikasi) adalah salah satu tujuan dokumentasi.
Michael Ekoka

Jawaban:

2479

Perbarui npm 5:

Pada npm 5.0.0 , modul yang diinstal ditambahkan sebagai dependensi secara default, sehingga --saveopsi tidak lagi diperlukan. Opsi penyimpanan lainnya masih ada dan tercantum dalam dokumentasi untuk npm install.

Jawaban asli:

Sebelum versi 5, NPM menginstal paket di bawah node_modulessecara default. Ketika Anda mencoba menginstal dependensi untuk aplikasi / modul Anda, Anda harus menginstalnya terlebih dahulu, dan kemudian menambahkannya (bersama dengan nomor versi yang sesuai) ke dependenciesbagian aplikasi Anda package.json.

The --savepilihan menginstruksikan NPM untuk menyertakan paket dalam dari dependenciesbagian Anda package.jsonsecara otomatis, sehingga menghemat langkah tambahan.

Selain itu, ada opsi pelengkap --save-devdan --save-optionalyang menyimpan paket di bawah devDependenciesdan optionalDependencies, masing-masing. Ini berguna saat menginstal paket pengembangan saja, seperti gruntatau pustaka pengujian Anda.

voithos
sumber
141
Serius, apakah ini didokumentasikan di mana saja? Saya tidak dapat menemukannya di Google atau di npmbantuan.
Christian Ternus
112
Alangkah baiknya jika dokumentasi untuk ini muncul ketika npm install --helpdigunakan.
Mark Stosberg
11
@jimsmith: Pada npm 5.0, ini adalah default.
voithos
3
Apakah "npm memperbarui" pada NPM 5 memodifikasi package.json secara default?
Igor Okorokov
6
@voithos Bagi saya NPM 5 memperbarui versi paket di package.json. Untuk menghindarinya saya perlu menjalankan 'npm update --no-save'
Igor Okorokov
219

Untuk menambahkan paket dalam dependensi:

npm install my_dep --save

atau

npm install my_dep -S

atau

npm i my_dep -S

Untuk menambahkan paket di devDependencies

npm install my_test_framework --save-dev

atau

npm install my_test_framework -D

atau

npm i my_test_framework -D

package.json masukkan deskripsi gambar di sini

Joe L.
sumber
30
hati-hati menggunakan versi jalan pintas seperti -S -Dkarena mereka harus huruf besar. Saya selalu membuat kesalahan ini dan npm tidak mengeluh atau menambahkannya ke package.json
Murray Wynnes
7
Itu tidak mengeluh karena -s(huruf kecil) untuk --silentopsi, dan -duntuk info loglevel yang keduanya merupakan pintasan yang valid.
tanvi
131

Ini tidak akan melakukan apa pun jika Anda tidak memiliki package.jsonfile. Mulailah dengan berlari npm inituntuk membuatnya. Kemudian panggilan ke npm install --saveatau npm install --save-devatau npm install --save-optionalakan memperbarui package.jsondaftar dependensi Anda.

Nick Retallack
sumber
37
Baru tahu bahwa itu bekerja surut (tampaknya). Anda dapat menjalankan npm install --save-devpertama Anda , kemudian npm init dan package.json Anda akan diisi.
Jacob Wang
20

menurut NPM Doc

masukkan deskripsi gambar di sini

Jadi sepertinya dengan menjalankan npm install package_name, ketergantungan paket harus secara otomatis ditambahkan ke package.json bukan?

ROROROOROROR
sumber
1
Saya kira --tidak ada save adalah untuk digunakan ketika Anda ingin fungsionalitas seperti npm <5
Abhiroj Panwar
Saya melihat, npm config ls -lmenunjukkan bahwa secara default, opsi save-xxx semuanya salah, hanya save yang benar.
ROROROOROROR
Sepertinya npm tidak akan memunculkan kesalahan apa pun jika Anda meletakkan opsi yang tidak ada, seperti --save-xxxxxx. Abaikan saja dan perilaku default --save-prod akan terpengaruh. Mungkin --save berasal dari beberapa versi npm lama.
leon
13

Anda juga dapat menggunakan -S, -Datau -Pyang setara dengan menyimpan paket ke ketergantungan aplikasi, ketergantungan dev atau ketergantungan prod. Lihat lebih banyak cara pintas NPM di bawah ini:

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

Daftar cara pintas ini dapat diperoleh dengan menjalankan perintah berikut:

$ npm help 7 config
DevWL
sumber
7

Pada npm 5, lebih menguntungkan untuk menggunakan --save-prod(atau -P) daripada --savemelakukan hal yang sama, seperti yang dinyatakan dalam npm install . Sejauh ini, --savemasih berfungsi jika disediakan.

tengah lapangan
sumber
Ini perlu menuju ke atas untuk menyelamatkan kita dari variasi membaca yang kontroversial, kontradiksi, dan pembajakan utas. SO perlu mendorong jawaban singkat dengan URL yang valid sehingga kami dapat menghindari CRUD dan melanjutkan pekerjaan kami. (Quora memiliki 'Apakah jawaban ini relevan' dll dan rapi saya bahkan sebelum menyarankan untuk melakukan ini) \ n Menyebalkan bahwa doc node resmi tidak menyebutkan opsi yang lebih lama (tidak aktif) dan sebagian besar referensi node tampaknya menjadi pra -5.0, mengirim kepala kita untuk putaran.
killjoy
6

Pada npm 5, npm sekarang akan menyimpan secara default. Jika Anda ingin npm bekerja dengan cara lama yang sama (tanpa autosave) dengan cara kerjanya di versi sebelumnya, Anda dapat memperbarui opsi konfigurasi untuk mengaktifkan penyimpanan otomatis seperti di bawah ini.

npm config set save false

Untuk mendapatkan pengaturan saat ini, Anda dapat menjalankan perintah berikut:

npm config get save

Sumber: https://blog.pusher.com/what-you-need-know-npm-5/

rajesh kumar
sumber
6

npm install package_x --save

Paket yang diberikan (package_x) akan disimpan di package.json di dalam dependensi. jika Anda menambahkan

npm install <<package_x>> --save-dev

maka itu akan disimpan di dalam devDependencies .

Nizam Deen
sumber
12
Apa kontribusi jawaban Anda yang belum dijawab oleh jawaban lain?
Pedro A
@Pedro A - Kecurigaan saya adalah orang itu menulis ulang apa yang baru saja dia baca; kemudian minta teman-temannya untuk memberinya suara.
IAM_AL_X
3

Cara yang lebih mudah (dan lebih dahsyat) untuk menambahkan dependensi ke package.json Anda adalah melakukannya dari baris perintah, menandai perintah instal npm dengan --save atau --save-dev, tergantung pada bagaimana Anda ingin gunakan ketergantungan itu.

Rubin bhandari
sumber
3

npm install --saveatau npm install --save-devmengapa kami memilih 1 opsi di antara dua ini saat menginstal paket di proyek kami.

semuanya jelas dari jawaban di atas yang npm install --saveakan menambah entri di dependencybidang dalam pacakage.jsonfile dan yang lainnya di dev-dependency.

Jadi timbul pertanyaan mengapa kita perlu memasukkan modul pemasangan kita di file pacakge.json karena setiap kali kita check-in kode gitatau memberikan kode kita kepada seseorang, kita selalu memberikan atau memeriksanya tanpa node-moduleskarena ukurannya sangat besar dan juga tersedia di tempat umum jadi untuk menghindari ini kita lakukan itu.

jadi lalu bagaimana orang lain akan mendapatkan semua modul yang secara khusus atau dibutuhkan untuk proyek itu sehingga jawabannya adalah from the package.jsonfile yang memiliki entri dari semua paket yang diperlukan untuk menjalankan atau mengembangkan proyek itu.

jadi setelah mendapatkan we simply need to run the npm installperintah kode itu akan membaca file package.json dan menginstal paket yang diperlukan.

Sunny Goel
sumber
2

npm i (Nama paket) --save

Secara sederhana, menggunakan perintah di atas kita tidak perlu menulis nama paket di file package.json Anda akan secara otomatis menambahkan nama dan ketergantungannya dengan versi yang Anda perlukan pada saat Anda pergi untuk produksi atau mengatur waktu lain.

NPM membantu menginstal

Perintah di atas akan membantu menemukan lebih banyak opsi dan memperbaiki def.shown di pic masukkan deskripsi gambar di sini

Nitin.
sumber