Angular CLI'yi en son sürüme yükseltme


102

Kullanıyorum ng --versionvar:

@ angular / cli: 1.0.0

mevcut en son sürüm değil.

Angular CLI sistemime global olarak yüklendiğinden, yükseltmek için şunu denedim:

npm update angular-cli -g

Ancak çalışmaz, çünkü 1.0.0 sürümünde kalır.

Yanıtlar:


833

GitHub deposunda bildirilen bazı sorunları okuduktan sonra çözümü buldum.

Sisteminize global olarak yüklenen angular-cli paketini güncellemek için şunları çalıştırmanız gerekir:

npm uninstall -g @angular-cli
npm install -g @angular/cli@latest

Sisteminize bağlı olarak, yukarıdaki komutların önüne koymanız gerekebilir sudo.

Ayrıca, büyük olasılıkla yerel proje sürümünüzü de güncellemek istersiniz, çünkü proje dizininizde küresel olandan daha yüksek öncelikli seçilecektir:

rm -rf node_modules
npm uninstall --save-dev @angular-cli
npm install --save-dev @angular/cli@latest
npm install

Bunu GitHub'da gösterdiğin için teşekkürler grizzm0 .

CLI'nizi güncelledikten sonra, muhtemelen Angular sürümünüzü de güncellemek istersiniz .

Not : Eski bir sürümden Açısal CLI 6+ şekilde güncelleme varsa, okumak gerekebilir bu .

Düzenleme : Ek olarak, hala cli'nin 1.x sürümündeyseniz , aşağıdaki komutla yapabileceğiniz angular-cli.jsonşekilde angular.json, ' yi dönüştürmeniz gerekir :

ng update @angular/cli --from=1.7.4 --migrate-only

( daha fazla ayrıntı için bunu kontrol edin ).


3
Bilgiçlik uyarısı: Sürümler arasındaki değişiklikler hakkında daha fazla ayrıntıyı GitHub'daki Sürümler sekmesinde bulabilirsiniz. Bağlantı: github.com/angular/angular-cli/releases
Stuti Verma

14
2017 Güncellemesi (npm @ 5): gerçekten önbelleğinizi temizlemeniz gerekiyorsa: "npm cache clean --force"
Neyt

3
neden tam @ angular / cli değil de angular-cli kaldırılsın?
YASH DAVE

4
Npm cache clean komutunun çalıştırılması 'npm @ 5 itibariyle, npm önbelleği bozulma sorunlarından kendi kendine iyileşir ve önbellekten çıkarılan verilerin geçerli olduğu garanti edilir. Her şeyin tutarlı olduğundan emin olmak istiyorsanız, bunun yerine "npm önbellek doğrulaması" nı kullanın. " "Eğer zorlamak istiyorsanız, --force
Pushkal Boganatham'ı

1
@PushkalBoganatham @neyt'in belirttiği gibi, --forcebayrağı kullanmanız gerekiyor
svict4

150

ng6 + -> 7.0

RxJS'yi güncelleyin (RxJS 6.3'e bağlıdır)

npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json

Kaldırmak rxjs-compat

Ardından çekirdek paketleri ve Cli'i güncelleyin:

ng update @angular/cli @angular/core

(İsteğe bağlı: Node.js'yi NG7'de desteklenen sürüm 10'a güncelleyin)

ng6 + (Cli 6.0+) : basitleştirilmiş komutlar içerir

Önce, Cli'inizi güncelleyin

npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli

Ardından, çekirdek paketlerinizi güncelleyin

ng update @angular/core

RxJS kullanıyorsanız,

ng update rxjs

RxJS'yi sürüm 6'ya güncelleyecek ve rxjs-compatpaketi kaputun altına kuracaktır .

Derleme hatalarıyla karşılaşırsanız, aşağıdakileri manuel olarak yüklemeyi deneyin:

npm i rxjs-compat
npm i @angular-devkit/build-angular

Son olarak, sürümünüzü kontrol edin

ng v

Üretim yapısına ilişkin not:

ng6 artık kullanımları intliçindepolyfills.ts

//remove them to avoid errors
import 'intl';
import 'intl/locale-data/jsonp/en';

ng5 + (Cli 1.5+)

npm install @angular/{animations,common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router}@next typescript@2.4.2 rxjs@'^5.5.2'
npm install typescript@2.4.2 --save-exact

Not:

  1. Yazma itibariyle Cli 1.6 için desteklenen Typescript sürümü 2.5.3'e kadardır.
  2. @Sonraki'yi kullanmak, varsa paketi beta sürümüne günceller. En son beta olmayan sürümü almak için @latest kullanın.

Hem genel hem de yerel paketi güncelledikten sonra, hataları önlemek için önbelleği temizleyin:

npm cache verify (recommended)
npm cache clean (for older npm versions)

İşte resmi referanslar:

  1. Cli'i güncelleme
  2. Çekirdek paketler çekirdek paketini güncelleme .

4
npm cache clean --force Gerçekten bana yardım etti
Pini Cheyni

1
Neden oh neden bu bölüm sürüm notlarında hayır!
Drenai

Lütfen RxJS 6'nın kullanımdan kaldırılmasıyla ilgili söylediklerinizi onaylar mısınız? Baktığım her yerde v6'nın en son kararlı sürüm olduğu görülüyor
Joey Gough

1
@JoeyGough güzel yakala! Ag7, rxjs 6.3'e bağlıdır. Yorumun için teşekkürler. ref: github.com/angular/angular/blob/master/…
Pageii Studio

108

basitçe kullanabilirsin

npm install -g angular-cli - eğer ilk seferinizse

npm install -g @angular/cli@latest - zaten yüklediyseniz, güncelleme için


37

Güçlü komut, son paketi kurar ve değiştirir.

Benzer bir problemim vardı. Onardım.

 npm install -g @angular/cli@latest

ve

npm install --save-dev @angular/cli@latest

görüntü açıklamasını buraya girin


bu yerel bir Angular CLI için işe yarayacak, küresel olanı yükseltmek için cevabımı kontrol edin
Francesco Borzi

küresel
klibimi

35

Bu komut iyi çalışıyor:

npm upgrade -g @angular/cli

Bu, CLI'yi en son küçük sürüme yükseltiyor gibi görünüyor.
Alexei

22

Aşağıdaki yaklaşım benim için çalıştı:

npm uninstall -g @angular/cli

sonra

npm cache verify

sonra

npm install -g @angular/cli@latest

: Bazen kullanmak zorunda Windows 10 üzerinde çalışmak npm cache clean --forceda. Kurulum sırasında herhangi bir sorun yaşamazsanız yapmanız gerekmez.


2
En yenisi @latestvarsayılandır, belirtmenize gerek yoktur .
Ambroise Rabier

Bu çözüm sizin için işe yaramazsa: stackoverflow.com/a/58678941/8718377
veben

17

Global CLI sürümünüzü yönetmede herhangi bir sorun yaşıyorsanız, NVM'yi kullanmak daha iyidir: MAC , Windows .

Angular projenizde yerel CLI'yi güncellemek için şu adımları izleyin:

CLI v6'dan başlayarak, ng updatebağımlılıklarınızın otomatik olarak yeni bir sürüme güncellenmesini sağlamak için çalıştırabilirsiniz .

ng update @angular/cli

İle ng updateBazen eklemek isteyebilirsiniz --forcebayrağı.

--allTüm paketleri aynı anda yükseltmek için bayrak da geçebilirsiniz .

ng update --all --force

Yalnızca CLI'yi taşımak istiyorsanız, şunu çalıştırın:

ng update @angular/cli --migrateOnly

Ayrıca, geçişin yapılacağı bayrak --from=fromsürümü de iletebilirsiniz , örn --from=1.7.4. Bu bayrak yalnızca güncellenen tek bir paketle ve yalnızca geçişte kullanılabilir.

Güncelleme tamamlandıktan sonra, yüklediğiniz typcript sürümünün mevcut açısal sürümünüz tarafından desteklendiğinden emin olun, aksi takdirde typcript sürümünü eski sürüme geçirmeniz gerekebilir. Ayrıca, genellikle angular'ın en son sürümünün typcript'in en son sürümünü desteklemeyeceğini de unutmayın.

Ödeme Angular CLI / Angular / NodeJS / Typescriptuyumluluk versiyonları burada

Ayrıca Angular projelerinizi güncelleme ve update.angular.io bu kılavuzu inceleyin.


ESKİ CEVAP:
Yapmanız gereken tek şey, açısal farkla farklılaşmak ve değişiklikleri mevcut projenize uygulamak.

İşte adımlar:

  1. 1.4'ten geçtiğinizi varsayalım. 1.5'e kadar https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0 yaparsınız
  2. tıklayın File changedsekmesi
  3. Değişiklikleri mevcut projenize uygulayın.
  4. npm install / yarn
  5. Tümünü test edinnpm scripts ( daha fazla ayrıntı burada: https://stackoverflow.com/a/45431592/415078 )

14

@ShinDarth cevabına ek olarak .

Dediğini yaptım ama paketim açısal versiyonu güncellemedi ve bu yazının hakkında olduğunu biliyorum angular-cli, ancak bunun da yardımcı olabileceğini düşünüyorum.

  • Bu yüzden @ShinDarth'ın yukarıda söylediğini yaptıktan sonra, açısal sürümümü düzeltmek -ng new projectnameiçin bir paket oluşturan yeni bir proje oluşturmam gerekiyordu .
  • yeni paketi kopyalayın, ardından yeni paketi güncelleme gerektiren tüm proje paketlerine yapıştırın (sahip olduğunuz bağımlılıkları eklemeyi ve ilk satırdaki adı değiştirmeyi unutmayın) veya sürümleri kopyalayıp yapıştırmadan manuel olarak değiştirebilirsiniz.
  • sonra koş -npm install.

Şimdi ng servetekrar çalışıyorum, belki hepsini yapmanın daha iyi bir yolu vardır, eğer birileri bilirse, lütfen paylaşın, çünkü bu güncellenmesi gereken tüm projelerde yapılması gereken bir acı.


cevabıma bir cevaptan çok bir ek gibi görünüyor, bu yüzden belki cevabımın altına yorum olarak taşıyabilirsiniz?
Francesco Borzi

7
sry, haklısın ama cevabına yorum yapabilmem için 50 itibara ihtiyacım var.
Leonardo Souza Paiva

9

Güncellemek için Açısal CLI yeni bir sürüme, genel paketi ve projenizin yerel paketi hem güncellemeniz gerekir.

Küresel paket:

npm uninstall -g @angular/cli
npm cache clean
# if npm version is > 5 then use `npm cache verify` to avoid errors (or to avoid using --force)
npm install -g @angular/cli@latest

Yerel proje paketi:

rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@latest
npm install

Kaynak: Github


3

Benim durumumda, npm install --save-dev angular-cli kullanarak yerel olarak angular-cli kurdum. Bu nedenle, npm install -g @ angular / cli komutunu kullandığımda, "Global Angular CLI sürümünüz (1.7.3) yerel sürümünüzden (1.4.9) daha büyük" diyerek hata veriyor . Lütfen angular-cli, @ angular / cli ve @ angular / cli @ latest'nin iki farklı cli olduğunu unutmayın. Bunu çözen, tüm cli'yi kaldırmak ve ardından npm install -g @ angular / cli @ latest kullanarak en son açısal cli'yi kurmaktır.

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.