NPM paketinin önceki tam sürümünü nasıl yükleyebilirim?


916

Düğüm v0.4.10 indirmek için nvm kullandım ve düğümün bu sürümüyle çalışmak için npm yükledim.

Kullanarak ekspres yüklemeye çalışıyorum

npm install express -g

ve ifade düğüm sürümü> = 0.5.0 gerektiren bir hata alıyorum.

Peki, bu garip, çünkü burada düğüm v0.4.10 kullanılan bir düğüm + ekspres + mongodb öğretici için talimatları takip ediyorum, bu yüzden ekspres v0.4.10 için kullanılabilir / varsayalım varsayıyorum. Varsayım doğruysa, npm'ye kurulumumla çalışacak bir sürüm getirmesini nasıl söyleyebilirim?


7
Neden sadece Düğüm sürümünüzü güncellemiyorsunuz? Bulacağınız kırık davranıştan çok daha iyi eklemeler olması gerektiğine eminim.
Fabrício Matté

1
Bazen bu bir seçenek değildir. Sürüm düşürmek için nvm kullandıysa, diğer bazı grupların kullanması gereken yürütülebilir düğüm sürümünü kontrol etmesi gibi bir neden olabilir.
fool4jesus

Yanıtlar:


1583

Bir paketin eski bir sürümünü kurmanız gerekiyorsa,

npm install <package>@<version>

Örneğin: npm install express@3.0.0

Ayrıca --save, package.json bağımlılıklarınıza eklemek için bayrağı bu komuta ekleyebilir veya package.json bağımlılıklarınızda --save --save-exacttam sürüm belirtilmesini istiyorsanız bayraklar ekleyebilirsiniz .

installKomut burada belgelenmiştir: https://docs.npmjs.com/cli/install

Bir paketin hangi sürümlerinin mevcut olduğundan emin değilseniz, şunları kullanabilirsiniz:

npm view <package> versions

Ve npm viewbir paket hakkındaki diğer şeyleri görüntülemek için de kullanılabilir. https://docs.npmjs.com/cli/view


4
Bunun eşleşen en yakın büyük sürümü yükleyeceğine inanıyorum, bu yüzden beklediğiniz gibi olmayabilir stackoverflow.com/a/22345808/1074400
Aakil Fernandes

2
@AakilFernandes Tam bir sürüm belirtirseniz, tam bir sürüm yüklenir. Anlamsal bir sürüm aralığı belirtirseniz, tam olmayan bir eşleşme elde edebilirsiniz. Bu açıdan install komutu ile ilgili benzersiz bir şey yoktur.
Bret Copeland

6
npm view <package> versions -jsonHer sürümü görmek için, bir çok sürümü olan bir listenin sonunda üç noktadan kaçınmak.
TheDarkIn1978

5
Eğer kullanırsanız npm install express@3.0.0, size tam sürüm 3.0.0 almazsınız, en son 3.xx sürümünü alırsınız. Belirli bir sürümü almak için kullanmanız gerekir npm install express@3.0.0 --save-exact. Bu blog gönderisine bakın: 60devs.com/npm-install-specific-version.html
Patrick Hund

5
@PatrickHund no, tam olarak 3.0.0 sürümünü npm install express@3.0.0alacak . En son 3.xx, cevabımda zaten ele aldığım Packages.json'a nasıl yazıldığını etkiler. Ayrıca, ya ya - ile birlikte kullanılması gerektiğini unutmayın - kendi başına kullanmak yeterli değildir. npm install express@^3.0.0--save-exact--save-exact--save--save-dev
Bret Copeland

93

Oldukça kolay. Sadece şunu yazın, örneğin:

npm install -g npm@4.6.1

Veya:

npm install -g npm@latest    // For the last stable version
npm install -g npm@next      // For the most recent release

1
latestVe nextsürüm etiketleri için teşekkürler !
Jimmy Adaro

@inaps sen belki bir not eklemek -gbayrak çok sayıda kullanıcı bu sayfaya almak ve sadece kopya / onların paket ekosistemini darbeye konusunda ne kadar farkında olmadan yapıştırmak gibi küresel kurulmasını istediğiniz paketlerin içindir. Hepimiz "o adam"
olduk

73

Önce eski sürümü kaldırın, ardından tam olarak aşağıdakileri çalıştırın :

npm install express@3.X

ve istikrarlı veya yeni

npm install -g npm@latest    // For the last stable version
npm install -g npm@next      // For the most recent release

12
Bu, Xbazı sayısal sürüm numaraları için bir hazır bilgi veya stand-in mi?
Keith Thompson

7
Bu bir ya / ya da soruydu, evet / hayır sorusu değil. Denedim npm install express@3.Xve işe yaramış gibiydi. Bu npm, sürüm numarasını ayrıştırma özelliği mi yoksa kazası mı?
Keith Thompson

3
@KeithThompson Evet, öyle! Hehe, sadece şaka yapıyordum ... Bu npmayrıştırmanın yolu , bkz: docs.npmjs.com/misc/semver#x-ranges-12x-1x-12-
gonz

3
@gonz: Yani gerçek bir kelime X.
Keith Thompson

1
Sadece bunun sizin için neden işe yaradığını ele almak istedim. Saurabh'ın orijinal niyetini veya ne yapmaya çalıştığınızı bilmiyorum. 3.X,> = 3.0 ve <4.0 anlamına gelir.
gonz

41

Bence bu en kolay ve en hızlı yol:

$ npm -v

4.2.0

$ npm install -g npm@latest-3

...

$ npm -v

3.10.10


2

npm paketinizi şu komutu kullanarak güncelleyebilirsiniz:

npm install <package_name>@<version_number>

misal: npm install yargs@12.02


1

Özellikle yerel olarak çalıştırmak için depoları klonlarken, ancak sürümlerin biraz daha analiz edilmesini gerektiren bu tür sorunları çözmek için genel bir yolum var.

Paketle npm-check-updates, şekilde gösterildiği gibi ( https://www.npmjs.com/package/npm-check) mevcut en son sürümlerinde bildirilmeyen paketlerin sürümlerini (package.json dosyasına göre) doğrularım. -updates ):

resim açıklamasını buraya girin

Bu bilgilerle, farklı paketlerin güncelleme durumunu doğrulayabilir ve hangi paketlerin yükseltileceği / indirileceği ve hangilerinin yükseltilemeyeceği konusunda kararlar verebiliriz.

Tüm paketleri listelendikleri gibi güncellemeye karar verdiğimizi varsayarsak, ncu -uyalnızca package.json dosyanızı değiştiren komutu kullanabiliriz . npm installYüklü paketlerinizi ve package-lock.json dosyasını güncellemek için çalıştırın .

Daha sonra, deponun gereksinimlerine bağlı olarak, neyin gerekli olduğunu düzeltebilir, belirli sürümleri npm view <package> versionsve npm install <package>@<version>


1

npm install -g npm@version

sürüm düşürmek istediğiniz

npm install -g npm@3.10.10


ama yerel olarak ihtiyacım olursa? kaydetmem gerekiyor mu?
AlexNikonov

Evet sende var .. paketi yerel olarak indirecek.
Lakshay Sharma

@AlexNikonov ommit -g(global kurulum için, o zaman mevcut proje direktifinize iner /node_modules) ve evet, --saveya da --save-devbir giriş almak içinpackage.json
Frank Nocke

0

Bir npm paketinin önceki bir sürümünü yüklemek için aşağıdaki komutu kullanabilirsiniz:

npm install packagename@version


-3

Ubuntu'da bu komutu deneyebilirsiniz.

sudo npm cache clean -f
sudo npm install -g n
sudo n stable 

Belirli sürüm: sudo n kararlı yerine sudo n 8.11.3

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.