Npm uninstall kullanırken bağımlılıkları package.json'dan otomatik olarak kaldırın


84

Bunu npm initkullanarak package.json dosyama bağımlılıklar ekledikten sonra :

npm install package --save

Ve diyorum ki, uninstallpaketi istiyorum ve bunu yaparak yapıyorum:

npm uninstall package

ama ben elle dosyaya gidip bu satırı silmeme gerek kalmadan package.json'umun uygun şekilde güncellenmesini istiyorum.

Npm belgelerinden şunu söylüyor:

Kesinlikle eklemelidir, bu nedenle gerçekten iyi bir neden olmadan package.json'daki seçenekleri silmez.

Bu yüzden, bunun mümkün olup olmadığını bilmek istedim.


(--Save) bayrağıyla yüklediğimde bağımlılıklarım otomatik olarak package.json'a eklendiğinden, paketi her kaldırdığımda package.json'dan bağımlılıkları kaldırmanın bir yolu olup olmadığını merak ediyordum.
çığlık

Yanıtlar:


151

Aynı --savebayrağı kullanın . Aşağıdakilerle bir bağımlılık kurduysanız:

$> npm install grunt-cli --save

package.json güncellendiğinde, şunu kullanarak kaldırabilirsiniz:

$> npm uninstall grunt-cli --save

'Kaydet' bayrağı, npm'ye, daha önce yaptığınız işleme göre package.json'u güncellemesini söyler.


3
Ember-cli ile npm kullanıyorum ve --save-devbunun yerine kullanmak zorunda kaldım --save.
gerry3

4
--save-dev ile yüklediyseniz, kaldırma işlemi de --save-dev olur, çünkü --save dependencies, package.json dosyasının bölümüne kaydeder , oysa --save-devdevDependencies
Mike '

7
Bu soruyu gönderdikten sonra çok yol kat ettim ve işte size biraz ipucu. Sen kullanabilirsiniz npm i <package_name> -Ssizin eklemek dependenciesliste veya npm i <package_name> -Dadresinden Müşteri eklemek dev-dependencies. Aynı bayrak npm rm <package_name> -Sveya ile kaldırma için de geçerlidirnpm rm <package_name> -D
çığlık

1
ancak bunların --save ve --save-dev için kısaltılmış bayrak eşdeğerleri olduğuna dikkat edin. npm helpTüm bayraklar ve kısaltılmış eşdeğerleri için bakın . (-S veya --save ile yüklenen ve ikisi de kullanılarak kaldırılan her şey, npm onları farklı görmez. Sadece -S için "daha az yazarak")
Mike 'Pomax' Kamermans

1
Sen erkekler arasında bir azizsin.
John Von Neumann

0

Benim durumumda --save, package.json'daki girişi temizlemedi, ionic-check tarafından önerilen komut kaldırma işleminin herhangi bir hatayla çıkması durumunda package.json'un güncellenmeyeceğini düşünüyorum, bu durumda yalnızca bir seçeneğiniz var package.json'u manuel olarak değiştirmek için, bu sıkıcı ama tahmin ettiğim tek yol

GÜNCELLEME

Aktif olan başka bir pakete bağımlı olan bir paketi kaldırdığınızda, hangi durumda kaldırma işlemi hata / uyarılarla başarısız olabilir, güvenli yöntem aşağıdaki bağımlılık grafiğidir, herhangi bir araç olup olmadığından emin değil, bu tür işlemler altında kullanışlı bir araç, uyarı mesajlar oldukça yanıltıcıdır, ancak "eş bağımlılıkları yüklemelisiniz .." bir paketi kaldırırken bir anlam ifade etmiyor


1
Bu gerekli olmamalıdır: İçinde eğer dependenciesdaha listeye uninstall --save gerektiğini bakılmaksızın başka bir şey buna bağlıdır olsun, bunu kaldırın. NPM, bağımlılık listenizde (açıkça) X varsa ve X -save'i kaldırırsanız, oldukça akıllıca bağımlılık düzleştirmesi kullanır. Ancak, orada birden bağımlılık listeleri olduğunu ve hatırlamak --saveaynı değildir --save-dev, --save-prodya --save-optional. Ayrıca evet: Eğer uninstallhatalara yol açarsanız , NPM bu hatada durur. Devam etmeye çalışmıyor çünkü artık doğruluğu garanti edemiyor.
Mike 'Pomax' Kamermans
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.