--Save bayrakları npm kurulumuyla ne yapar?


103

Her ikisiyle de bir paket kurma talimatlarını görüyorum

npm install <package_name>

veya

npm install <package_name> --save

veya

npm install <package_name> --save-dev

Bu seçenekler arasındaki fark nedir?

Yanıtlar:


89

npm install <package_name> --savepaketi yükler ve package.json dosyanızdaki bağımlılıkları günceller. Bu soru sorulduğundan --save, varsayılan seçenek haline gelen npm'de bir değişiklik oldu, bu nedenle --savebağımlılıkları güncellemek için kullanmanıza gerek kalmaz .

npm install <package_name> --no_save paketi yükler, ancak paket.json dosyanızda listelenen bağımlılıkları güncellemez.

npm install <package_name> ---save-devdevDependenciespaketinizdeki güncellemeleri . Bunlar yalnızca yerel test ve geliştirme için kullanılır.

Daha fazlasını https://docs.npmjs.com/getting-started/using-a-package.json adresinde okuyabilirsiniz .


3
"Npm --save flag" ile ilgili google aramamın en iyi cevabı buydu. Lütfen doğru bilgilerle güncellemeyi düşünün, yani --save artık varsayılandır ve package.json'daki bağımlılıklar listesini güncellememek için --no-save gereklidir
Jonas Rosenqvist

53

npm install, ana paketinizdeki paket sürümünü kaydeden veya güncelleyen 3 özel, isteğe bağlı bayrak alır. json:

-S, --save: Paket bağımlılıklarınızda görünecektir.

-D, --save-dev: Paket devDependency'lerinizde görünecektir.

-O, --save-optional: Paket, isteğe bağlı Bağımlılıklarınızda görünecektir.

Bağımlılıkları package.json dosyanıza kaydetmek için yukarıdaki seçeneklerden herhangi birini kullanırken, ek, isteğe bağlı bir işaret vardır:

-E, --save-exact: Kaydedilen bağımlılıklar, npm'nin varsayılan semver aralığı operatörünü kullanmak yerine tam sürümle yapılandırılacaktır. Ayrıca, bir npm-shrinkwrap.json dosyanız varsa, o zaman da güncellenecektir.

<scope>İsteğe bağlı. Paket, belirtilen kapsamla ilişkili kayıt defterinden indirilecektir. Verilen kapsam ile hiçbir kayıt defteri ilişkilendirilmemişse, varsayılan kayıt defteri varsayılır. Npm kapsamına bakın.

Not: Kapsam adınıza @ sembolünü dahil etmezseniz, npm bunu bir GitHub deposu olarak yorumlar, aşağıya bakın. Kapsam adlarından sonra eğik çizgi gelmelidir.

Örnekler:

npm install sax --save
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save --save-exact

Not: <name>Geçerli çalışma dizininde adlandırılmış bir dosya veya klasör varsa , bunu yüklemeye ve yalnızca geçerli değilse adıyla paketi almaya çalışacaktır.

(resmi belgelerden) https://docs.npmjs.com/cli/install


52
İken --saveseçeneği hala iş görünüyor, artık gereklidir - paketler şimdi bağımlılıkları kaydedilir varsayılan olarak . Mantık şimdi ters çevrilmiş olup - eğer yok paketinizi kaydetmek istediğiniz, belirtmeniz gereken--no-save
Coruscate5

Teşekkürler, @ Coruscate5 sorumu tam olarak yanıtladı.
Kon

28

--saveBayrak artık bir amaca hizmet eder.

Daha önce, diğer yanıtların da belirtildiği gibi, --savebayrak proje package.jsondosyasındaki bağımlılıkları güncelliyordu , ancak npm installartık bu işlevi varsayılan olarak içeriyor.

Bu noktada npm install, bağımlılıkların kaydedilmesini engellemek istiyorsanız , --no-savebayrağı kullanmanız gerekir .

Onların bu söz için Coruscate5 sayesinde comment .

Npm-install belgelerinde daha fazla bilgi :

npm install, belirtilen paketleri varsayılan olarak bağımlılıklara kaydeder. Ek olarak, bazı ek işaretlerle nereye ve nasıl kaydedileceğini kontrol edebilirsiniz:

-P, --save-prod: Bağımlılıklarınızda paket görünecektir. -D veya -O yoksa bu varsayılandır.

-D, --save-dev: Paket devDependency'lerinizde görünecektir.

-O, --save-Optional: Paket, isteğe bağlı Bağımlılıklarınızda görünecektir.

--no-save: Bağımlılıklara kaydetmeyi engeller.

Bağımlılıkları package.json dosyanıza kaydetmek için yukarıdaki seçeneklerden herhangi birini kullanırken, iki ek, isteğe bağlı bayrak vardır:

-E, --save-exact: Kaydedilen bağımlılıklar, npm'nin varsayılan semver aralığı operatörünü kullanmak yerine tam bir sürümle yapılandırılacaktır.

-B, --save-bundle: Kaydedilen bağımlılıklar da bundleDependencies listenize eklenecektir.


mevcut durumu kapsayacak güncellenmiş yanıt için teşekkürler
DrCord

Uzun süredir devam eden şüphelerimi netleştirdi. Teşekkürler
Alok Ranjan
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.