Npm kurulumu için --save seçeneği nedir?


2035

Komutun olduğu yerde bazı öğreticiler gördüm:

npm install --save

--saveSeçenek ne anlama geliyor?

Google'da cevabı bulamıyorum.


32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie

7
-S ve -D kısayollarını kullanabilirsiniz -S -save ve -D '-save-dev' dir. --save (veya simple -S): Paket bağımlılıklarınızda görünecektir. --save-dev (veya simple -D): Paket, Bağımlılıklarınızda görünecektir.
Gil Epshtain

5
@WiredPrairie teşekkür çalışıyordum npm install (--help | -h | -help ..)ve hiçbir şey.
juliangonzalez

2
thx @Dmitri, ben de aynı sorunu yaşadım. hadi NPM, aracınız için MAN sayfanıza ekleyin
Erdinc Ay

67
Ben dokümanlar ve yardım sayfasından bu seçeneği bile sadece söz kaldırma kararının ardındaki mantığı anlamıyorum olmadan da aracı kendisinde bir uyarı ile, en azından, bunu kaldırıyoruz. Bu arada yeni başlayanlar, milyonlarca öğretici aracılığıyla ona maruz kalıyor. Daha sonra ne yaptığını bulmaya çalışır ve sonunda yığın akışı üzerinde npm geçmişini okumak için dokümanları inceleyerek 20 dakika harcamak zorunda kalırlar. Garip bir şekilde bu tür büyük zaman israfını önlemek (sorunun popülerliği herhangi bir gösterge ise) dokümantasyonun amaçlarından biridir.
Michael Ekoka

Yanıtlar:


2477

Güncelleme npm 5:

İtibariyle NPM 5.0.0 böylece, yüklü modüller, varsayılan bir bağımlılık olarak eklenir --saveseçeneği artık gerek yoktur. Diğer seçenekler hala var ve listelenen kaydetmek belgelere için npm install.

Orijinal cevap:

Sürüm 5'ten önce, NPM node_modulesvarsayılan olarak altına bir paket kurdu . Uygulamanız / modülünüz için bağımlılıklar yüklemeye çalışırken, önce bunları yüklemeniz ve ardından (uygun sürüm numarasıyla birlikte) dependenciesbölümünüze eklemeniz gerekir package.json.

Bu --saveseçenek, NPM'ye paketi otomatik olarak dependenciesbölümünüzün içine dahil etmesini package.jsonsağladı ve böylece size ek bir adım kazandırdı.

Ayrıca, tamamlayıcı seçenekler vardır --save-devve --save-optionalpaketi sırasıyla devDependenciesve altında optionalDependenciessaklarlar. Bu, grunttest kitaplığınız gibi yalnızca geliştirme paketlerini yüklerken yararlıdır .


140
Cidden, bu herhangi bir yerde belgelendi mi? Google'da veya npmyardımda bulamadım .
Christian Ternus

111
Bunun için belgelerin ne zaman npm install --helpkullanıldığını göstermesi güzel olurdu .
Mark Stosberg

11
@jimsmith: npm 5.0 itibarıyla varsayılan değerdir.
voithos

3
NPM 5'teki "npm güncellemesi" package.json'u varsayılan olarak değiştirir mi?
Igor Okorokov

6
@voithos NPM 5 benim için package.json'daki paket sürümlerini günceller. Bunu önlemek için 'npm update - no-save' komutunu çalıştırmam gerekiyor
Igor Okorokov

219

Bağımlılıklara paket eklemek için:

npm install my_dep --save

veya

npm install my_dep -S

veya

npm i my_dep -S

DevDependencies içinde paket eklemek için

npm install my_test_framework --save-dev

veya

npm install my_test_framework -D

veya

npm i my_test_framework -D

package.json resim açıklamasını buraya girin


30
-S -Dbüyük harf olması gerektiği gibi kısayol sürümlerini kullanmaya dikkat edin . Her zaman bu hatayı yapıyorum ve npm şikayet etmiyor ya da package.json'a
eklemiyor

7
Şikayet etmez çünkü -s(küçük harf) --silentseçenek içindir ve -dher ikisi de geçerli kısayollar olan loglevel bilgisi içindir.
tanvi

131

package.jsonDosyanız yoksa hiçbir şey yapmaz . npm initBir tane oluşturmak için koşarak başlayın . Ardından , bağımlılıklarınızı listelemek için veya öğesini arar npm install --saveveya günceller .npm install --save-devnpm install --save-optionalpackage.json


37
Sadece geriye dönük olarak çalıştığını öğrendim (öyle görünüyor). npm install --save-devİlk önce npm init komutunu çalıştırabilir ve paketiniz.json doldurulur.
Jacob Wang

20

NPM Doc'a göre

resim açıklamasını buraya girin

Bu nedenle, çalışarak npm install package_name, paket bağımlılığının package.json'a otomatik olarak eklenmesi gerektiği anlaşılıyor.


1
Sanırım - no-save, npm <5 gibi işlevler istediğinizde kullanmaktır
Abhiroj Panwar

Görüyorum, npm config ls -lvarsayılan olarak, save-xxx seçeneklerinin tümünün yanlış olduğunu, yalnızca kaydetmenin doğru olduğunu gösterir.
ROROROOROROR

Görünüşe göre --save-xxxxxx gibi hiçbiri mevcut seçeneği koymazsanız, npm herhangi bir hatayı tetiklemeyecektir. Sadece görmezden gelir ve varsayılan davranış - kaydetme-eşya etkili olacaktır. Belki --save bazı eski npm versiyonundan gelir.
leon

13

Ayrıca kullanabilir -S, -Dya da -Pbir uygulama bağımlılığı, bir dev bağımlılık veya prod bağımlılığına paketi tasarruf eşdeğer olan. Aşağıdaki diğer NPM kısayollarına bakın:

-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

Bu kısayol listesi aşağıdaki komutu çalıştırarak elde edilebilir:

$ npm help 7 config

7

Npm 5 itibariyle, npm kurulumunda belirtildiği gibi aynı şeyi yapmaktan --save-prod(veya -P) kullanmak daha uygundur . Şimdiye kadar, sağlanmışsa hala çalışıyor.--save--save


Bu hepimizi göze çarpan okuma varyasyonları, çelişkiler ve iplik kaçırma kurtarmak için en üstüne gitmek gerekir. SO'nun CRUD'den kaçınabilmemiz ve çalışmalarımıza devam edebilmemiz için geçerli URL'lerle kısa yanıtları teşvik etmesi gerekiyor. (Quora düzgün bir 'Bu cevap alakalı mı' vb. Ve daha önce SO'ya bunu yapmasını önerdi bile) \ n Resmi düğüm belgesinin daha eski (geçersiz) seçeneklerden bahsetmediği ve çoğu düğüm referansının önceden olduğu görülüyor -5.0, başımızı döndürmeye gönderiyor.
killjoy

6

Npm 5 itibariyle, npm artık varsayılan olarak kaydedilecektir. Npm'nin önceki sürümlerde nasıl çalıştığına benzer bir şekilde (otomatik kaydetme yok) çalışmasını istiyorsanız, otomatik kaydetmeyi etkinleştirmek için yapılandırma seçeneğini aşağıdaki gibi güncelleyebilirsiniz.

npm config set save false

Geçerli ayarı almak için aşağıdaki komutu yürütebilirsiniz:

npm config get save

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


6

npm install package_x --save

Verilen paket (package_x) bağımlılıklar içinde package.json dosyasına kaydedilecektir. eklerseniz

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

daha sonra devDependencies içine kaydedilir .


12
Cevabınız diğer cevapların daha önce ele almadığına ne katıyor?
Pedro A

@Pedro A - Şüphem, adamın okuduğunu yeniden yazması; sonra arkadaşları ona oy veriyor.
IAM_AL_X

3

Paketinize bağımlılıklar eklemenin daha kolay (ve daha harika) yolu, komut satırından bunu yapmak ve nasıl istediğinize bağlı olarak npm install komutunu --save veya --save-dev ile işaretlemektir. bu bağımlılığı kullanın.


3

npm install --saveveya npm install --save-devneden projemize paket kurarken bu ikisi arasında 1 seçenek seçiyoruz.

Yukarıdaki yanıtlardan, dosyadaki alana ve diğer dosyaya npm install --savegiriş ekleyecek olan şeyler açıktır .dependencypacakage.jsondev-dependency

Bu yüzden soru, neden kurulum modülümüzün pacakge.json dosyasına girmesi gerektiğine neden oluyor çünkü kodu her girdiğimizde gitveya kodumuzu birisine verdiğimizde, her zaman veriyoruz veya node-modulesçok büyük olduğundan ve aynı zamanda kullanılabilir olduğundan da kontrol ediyoruz . Bunu önlemek için ortak bir yer.

öyleyse diğer kişinin bu proje için özel veya gerekli olan tüm modülleri nasıl alacağı, böylece cevaplar bu projeyi from the package.jsonçalıştırmak veya geliştirmek için gerekli tüm paketlerin girişine sahip olan dosyadır.

kod we simply need to run the npm installkomutunu aldıktan sonra package.json dosyasını okuyacak ve gerekli paketleri kuracaktır.


2

npm i (Paket adı) - kaydet

Basitçe, yukarıdaki komutu kullanarak paketinizin paket adını yazmanıza gerek kalmayacaktır.

npm yardım yüklemesi

Komutun üstünde, daha fazla seçenek bulmaya yardımcı olacak ve resimdeki def. Gösterilen resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.