Cara meningkatkan CLI Angular ke versi terbaru

102

Menggunakan ng --versionsaya mendapat:

@ angular / cli: 1.0.0

yang bukan merupakan rilis terbaru yang tersedia.

Karena saya memiliki CLI Angular yang diinstal secara global di sistem saya, untuk meningkatkannya, saya mencoba:

npm update angular-cli -g

Tapi itu tidak berhasil, karena tetap pada versi 1.0.0.

Francesco Borzi
sumber

Jawaban:

833

Setelah membaca beberapa masalah yang dilaporkan di repositori GitHub, saya menemukan solusinya.

Untuk memperbarui paket angular-cli yang diinstal secara global di sistem Anda, Anda perlu menjalankan:

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

Bergantung pada sistem Anda, Anda mungkin perlu mengawali perintah di atas dengan sudo.

Selain itu, kemungkinan besar Anda juga ingin memperbarui versi proyek lokal Anda, karena di dalam direktori proyek Anda akan dipilih dengan prioritas lebih tinggi daripada versi global:

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

terima kasih grizzm0 karena telah menunjukkan hal ini di GitHub .

Setelah memperbarui CLI Anda, Anda mungkin ingin memperbarui versi Angular Anda juga.

Catatan : jika Anda memperbarui ke Angular CLI 6+ dari versi yang lebih lama, Anda mungkin perlu membaca ini .

Edit : Selain itu, jika Anda masih menggunakan cli versi 1.x, Anda perlu mengonversi angular-cli.jsonke angular.json, yang dapat Anda lakukan dengan perintah berikut:

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

(periksa ini untuk lebih jelasnya).

Francesco Borzi
sumber
3
Peringatan Pedantic: Anda dapat menemukan detail lebih lanjut tentang perubahan antar versi di tab Rilis di GitHub. Tautan: github.com/angular/angular-cli/releases
Stuti Verma
14
Pembaruan 2017 (npm @ 5): jika Anda benar-benar perlu membersihkan cache: "npm cache clean --force"
Neyt
3
mengapa menghapus angular-cli dan bukan keseluruhan @ angular / cli?
YASH DAVE
4
Menjalankan perintah npm cache clean melempar kesalahan 'Pada npm @ 5, npm cache self-heals dari masalah korupsi dan data yang diekstrak dari cache dijamin valid. Jika Anda ingin memastikan semuanya konsisten, gunakan 'verifikasi cache npm' sebagai gantinya. ' "jika Anda ingin memaksa, Anda dapat menambahkan --force
Pushkal Boganatham
1
@PushkalBoganatham sebagai @neyt menyatakan, Anda perlu menggunakan --forcebendera
svict4
149

ng6 + -> 7.0

Perbarui RxJS (tergantung pada RxJS 6.3)

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

Menghapus rxjs-compat

Kemudian perbarui paket inti dan Cli:

ng update @angular/cli @angular/core

(Opsional: perbarui Node.js ke versi 10 yang didukung di NG7)

ng6 + (Cli 6.0+) : menampilkan perintah yang disederhanakan

Pertama, perbarui Cli Anda

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

Kemudian, perbarui paket inti Anda

ng update @angular/core

Jika Anda menggunakan RxJS, jalankan

ng update rxjs

Ini akan memperbarui RxJS ke versi 6 dan menginstal rxjs-compatpaket di bawah tenda.

Jika Anda mengalami error build, coba instal manual dari:

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

Terakhir, periksa versi Anda

ng v

Catatan tentang produksi build:

ng6 tidak lagi digunakan intldalampolyfills.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 [email protected] rxjs@'^5.5.2'
npm install [email protected] --save-exact

catatan:

  1. Versi Ketikan yang didukung untuk Cli 1.6 pada saat penulisan adalah hingga 2.5.3.
  2. Menggunakan @next memperbarui paket ke beta, jika tersedia. Gunakan @latest untuk mendapatkan versi non-beta terbaru.

Setelah memperbarui paket global dan lokal, kosongkan cache untuk menghindari kesalahan:

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

Berikut referensi resminya:

  1. Memperbarui Cli
  2. Memperbarui paket inti paket inti .
Pageii Studio
sumber
4
npm cache clean --force Benar-benar membantu saya
Pini Cheyni
1
Mengapa oh mengapa bagian ini tidak ada di catatan rilis!
Drenai
bisakah Anda mengkonfirmasi apa yang Anda katakan tentang RxJS 6 yang sudah tidak digunakan lagi. Di mana pun saya melihat, tampaknya v6 adalah rilis stabil terbaru github.com/ReactiveX/rxjs rxjs-dev.firebaseapp.com
Joey Gough
1
@JoeyGough tangkapan yang bagus! Ng7 bergantung pada rxjs 6.3. Terima kasih atas komentar Anda. ref: github.com/angular/angular/blob/master/…
Pageii Studio
108

Anda cukup menggunakan

npm install -g angular-cli - jika ini pertama kalinya bagimu

npm install -g @angular/cli@latest - jika Anda sudah menginstal, jadi untuk memperbarui

SamYah
sumber
37

Perintah yang kuat menginstal dan mengganti paket terakhir.

Saya memiliki masalah serupa. Aku telah memperbaikinya.

 npm install -g @angular/cli@latest

dan

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

masukkan deskripsi gambar di sini

BehrouzMoslem
sumber
ini akan berfungsi untuk CLI Angular lokal, periksa jawaban saya untuk meningkatkan yang global
Francesco Borzi
meningkatkan klien global saya
Rahmathullah M
35

Perintah ini berfungsi dengan baik:

npm upgrade -g @angular/cli
wdavilaneto.dll
sumber
22

Pendekatan berikut berhasil untuk saya:

npm uninstall -g @angular/cli

kemudian

npm cache verify

kemudian

npm install -g @angular/cli@latest

Saya bekerja di Windows 10, terkadang saya harus menggunakan: npm cache clean --forcejuga. Anda tidak perlu melakukannya jika tidak ada masalah selama penginstalan.

Enayat
sumber
2
Anda tidak perlu menentukan @latest, karena terbaru adalah defaultnya.
Ambroise Rabier
Jika solusi ini tidak berhasil untuk Anda: stackoverflow.com/a/58678941/8718377
veben
17

Jika Anda mengalami kesulitan dalam mengelola versi CLI global Anda , lebih baik menggunakan NVM: MAC , Windows .

Untuk memperbarui CLI lokal di proyek Angular Anda, ikuti langkah-langkah ini:

Mulai dari CLI v6 Anda bisa menjalankannya ng updateuntuk mendapatkan dependensi Anda diperbarui secara otomatis ke versi baru.

ng update @angular/cli

Dengan ng updatekadang-kadang Anda mungkin ingin menambahkan --forceflag.

Anda juga dapat mengirimkan --allbendera untuk meningkatkan semua paket pada saat yang bersamaan.

ng update --all --force

Jika Anda hanya ingin memigrasi CLI, jalankan saja ini:

ng update @angular/cli --migrateOnly

Anda juga dapat mengirimkan --from=fromversi bendera asal migrasi, mis --from=1.7.4. Tanda ini hanya tersedia dengan satu paket yang diperbarui, dan hanya untuk migrasi.

Setelah pembaruan selesai, pastikan bahwa versi skrip ketikan yang Anda instal didukung oleh versi sudut Anda saat ini, jika tidak, Anda mungkin perlu menurunkan versi skrip ketikan. Juga perlu diingat bahwa biasanya versi terbaru dari angular tidak mendukung versi skrip terbaru.

Lihat Angular CLI / Angular / NodeJS / Typescriptversi kompatibilitas di sini

Juga periksa panduan ini Memperbarui proyek Angular Anda dan update.angular.io


JAWABAN LAMA:
Yang perlu Anda lakukan adalah melakukan diff dengan angular-cli-diff dan menerapkan perubahan dalam proyek Anda saat ini.

Berikut langkah-langkahnya:

  1. Katakanlah Anda mulai dari 1.4. ke 1.5 lalu Anda lakukan https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
  2. klik pada File changedtab
  3. Terapkan perubahan ke proyek Anda saat ini.
  4. npm install / yarn
  5. Uji semua npm scripts( detail selengkapnya di sini: https://stackoverflow.com/a/45431592/415078 )
kuncevic.dev
sumber
14

Selain jawaban @ShinDarth .

Saya melakukan apa yang dia katakan tetapi paket saya tidak memperbarui versi sudut, dan saya tahu bahwa posting ini tentang angular-cli, tetapi saya pikir ini juga dapat membantu.

  • jadi setelah melakukan apa yang dikatakan @ShinDarth di atas, untuk memperbaiki versi sudut saya, saya harus membuat proyek baru dengan -ng new projectnamepaket yang dihasilkan.
  • salin paket baru, lalu tempel paket baru pada semua paket proyek yang memerlukan pembaruan (ingat untuk menambahkan dependensi yang Anda miliki dan ubah nama pada baris pertama) atau Anda dapat mengubah versi secara manual tanpa salin dan tempel.
  • lalu lari -npm install.

Sekarang saya ng servebekerja lagi, mungkin ada cara yang lebih baik untuk melakukan semua itu, jika seseorang tahu, silakan berbagi, karena ini sulit dilakukan dengan semua proyek yang perlu diperbarui.

Leonardo Souza Paiva
sumber
Sepertinya lebih banyak tambahan untuk jawaban saya daripada jawaban, jadi mungkin Anda bisa memindahkannya sebagai komentar di bawah jawaban saya?
Francesco Borzi
7
sry, Anda benar tetapi saya membutuhkan 50 reputasi untuk memberikan komentar atas jawaban Anda.
Leonardo Souza Paiva
9

Untuk memperbarui CLI Angular ke versi baru, Anda harus memperbarui paket global dan paket lokal proyek Anda.

Paket global:

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

Paket proyek lokal:

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

Sumber: Github

Hasan Fathi
sumber
3

Dalam kasus saya, saya telah menginstal angular-cli secara lokal menggunakan npm install --save-dev angular-cli. Jadi, ketika saya menggunakan perintah npm install -g @ angular / cli, itu menghasilkan kesalahan yang mengatakan bahwa "Versi CLI Angular global Anda (1.7.3) lebih besar dari versi lokal Anda (1.4.9)" . Harap dicatat bahwa angular-cli, @ angular / cli dan @ angular / cli @ latest adalah dua cli yang berbeda. Yang memecahkan masalah ini adalah menghapus semua cli dan kemudian menginstal angular cli terbaru menggunakan npm install -g @ angular / cli @ latest

ARKhan
sumber