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.