Bir uygulamanın bağımlılıklarını npm kullanarak nasıl yeniden yüklersiniz?


384

Uygulamamın bağlı olduğu tüm paketleri yeniden yüklemenin basit bir yolu var mı (örneğin, uygulamalar düğümü_modüller klasörümde)?


4
npm rebuildyerel bağımlılıklarla ilgili bazı sorunlara da yardımcı olabilir
Francisco Presencia

1
Başkalarına yardımcı olması durumunda: Sadece bir paketi yeniden yüklemeye çalışıyorsanız, npm update <packageName>harika çalışıyor
rinogo

Yanıtlar:


617

Görebildiğim en kolay yol node_modulesklasörü silmek ve yürütmektir npm install.


28
Kabul; package.jsonuygulamanız için bir dosya oluşturduğunuzu varsayarsak .
JohnnyHK

9
Dizini npm installkaldırdıktan sonra çalıştırmanın , aşağı çekilmede node_modulestanımlanan farklı bağımlılık sürümleriyle sonuçlanabileceğini unutmayın package.json. Uygulamanız için çok özel bağımlılık sürümlerine ihtiyacınız varsa, dikkatli olun ve kaynak denetimi npm shrinkwrapiçin node_modulesdizininize bakın veya kontrol edin .
smithclay

10
@smithclay Uygulamamın package.json içindeki paketlerin açık sürümünü tanımladım, bu yüzden iyi olmalı, değil mi?
trusktr

@vadim Davranışı üzerinde bazı testler yapıyordum npm installve her zaman bağımlılıkları yeniden yükler ve package.json tarafından izin verildiği gibi paketleri en son sürümlere yükseltir. Bu nedenle node_modules, bozuk olduğunu düşünmediğiniz sürece klasörleri kaldırmak gerekmez. Kaldırılması gerektiğini düşündüğünüz bir sebep var mı? Ancak, amaç yabancı olan herhangi bir paketi kaldırmaksa, npm prunebunun yerine yürütebilirsiniz
himanshu

1
@himanshu, doğru şekilde npm installtüm modülleri package.json durumuna yükseltirsiniz. Ancak soru, tüm paketlerin nasıl yeniden yükleneceği . Bu nedenle, bozulmuş olabilir veya node.js sürümünün yükseltilmesinden sonra ikili parçaları yeniden oluşturmanız gerekebilir.
Vadim Baryshev

96

Doğru yol yürütmektir npm update. Bu gerçekten güçlü bir komut, eksik paketleri güncelliyor ve paketin daha yeni bir sürümünün kullanılıp kullanılamayacağını da kontrol ediyor.

Okuma NPM giriş Eğer NPM ile neler yapabileceğini anlamak için.


58
Ama daha yeni bir paket yoksa, bu hiçbir şey yapmaz, değil mi? Paket zaten en son sürümde olsa bile yeniden yüklemeyi zorlamaya çalışıyorum .
trusktr

2
Eksik paket yoksa, package.json içinde listelenen paketlerin en son sürümlerini (paketlerin bağımlılıkları dahil) kullanıp kullanamayacağını kontrol eder. Yani, özünde paketleri mümkünse yükseltir. Ancak yeniden yüklenmeyecek. Komutları kullanarak yapmak isterseniz, npm uninstall <package_name>belirli bir paketi kaldırmak için veya npm uninstalltüm paketleri kaldırmak için yürütebilirsiniz .
himanshu

1
Sadece npm uninstallbir paket belirtmeden yapmayı denedim ama bu bir hata veriyor.
trusktr

Bunu yürüttüğünüz klasör dizininde package.json var mı? Global paketi
kaldırıyorsanız

1
Sağladığınız bağlantı öldü, lütfen yeni bir bağlantı sağlayabilir misiniz? (Buldum bu ama emin o değiştirmek için kabul edilebilir değilim)
Motti

63

Çoğu zaman, tüm düğüm modüllerinin tam olarak yeniden yüklenmesini sağlamak için aşağıdaki komutu kullanıyorum (proje klasöründe olduğunuzdan emin olun).

rm -rf node_modules && npm install

Önbelleğe alınan bağımlılık olmadığından emin olmak npm cache cleaniçin node_modulesklasörü kaldırdıktan sonra da çalıştırabilirsiniz .



12

Npm'de bulunan yeniden kurulum modülünü kullanabilirsiniz .

Yükledikten sonra aşağıdaki komutu kullanabilirsiniz:

reinstall

El ile node_modulesklasör kaldırma ve yapma arasındaki tek fark npm install, bu komut npm'in önbelleğini otomatik olarak temizlemesidir. Böylece, bir komutta üç adım atabilirsiniz.

upd: npx reinstall paketi global olarak yüklemeden bu komutu çalıştırmanın bir yoludur (yalnızca npm5 + için)


1
@ g00glen00b Düzenledim, böylece köprüler olmadan yararlı bilgiler içeriyor
Rob

@ g00glen00b Bu gayet iyi; bunu silinmek için bir aday yapmaz. Lütfen bu gönderiye bakın - Köprü kaldırıldığında bazı yararlı bilgilerin (yani, kütüphanenin adı) olması şartıyla, özellikle bir bağlantı ile kısa cevapları ele alır
Rob


1

Windows için şunları kullanabilirsiniz:

(if exist node_modules rmdir node_modules /q /s) && npm install

Bu, node_modulesdizini kaldırır ve npm installdaha sonra gerçekleştirir . Kurulumdan önce kaldırılması, tüm paketlerin yeniden yüklenmesini sağlar.


0

Düğüm modüllerini yeniden yüklemek ve güncellemek için bu adımı izleyin

node_modules klasörü olmasa bile çalışır. şimdi aşağıdaki komutu eşzamanlı olarak yürütün. ayrıca "npm güncellemesi" kullanabilirsiniz ama bence bu tercih edilen bir yol

npm outdated // not necessary to run this command, but this will show outdated dependencies

npm install -g npm-check-updates // to install the "ncu" package

ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version

npm install: will install dependencies in your package.json file.

package.json dosyanızdaki bağımlılıkların sürümüyle ilgili sorun yoksa, bu adımları izlemenize gerek yoktur.

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