--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.