Karena Angular 6 ada di sini, saya ingin meningkatkan atau memindahkan aplikasi klien angular 5 saya ke angular 6, tetapi saya tidak mendapatkan tutorial atau apa pun yang dapat memandu saya.
Menurut saya, saya hanya perlu menjalankan CLI Angular baru dan kemudian harus memindahkan sumber lama saya ke proyek baru. Saya membaca Angular 6 menggunakan penyaji baru bernama Ivy. Apakah saya harus mengubah proyek saya menurut Ivy?
angular
migration
upgrade
angular-ivy
Abhishek Chokra
sumber
sumber
Jawaban:
Tingkatkan versi dari Angular v6 ke Angular v7
Versi 7 dari Angular telah merilis tautan blog resmi Angular . Kunjungi panduan pembaruan sudut resmi https://update.angular.io untuk informasi rinci. Langkah-langkah ini akan berfungsi untuk aplikasi sudut 6 dasar menggunakan Material Angular.
Tingkatkan versi dari Angular v5 ke Angular v6
Versi 6 dari Angular telah merilis tautan blog resmi Angular . Saya telah menyebutkan langkah-langkah peningkatan umum di bawah ini, tetapi sebelum dan sesudah pembaruan Anda perlu membuat perubahan dalam kode Anda agar dapat diterapkan di v6, untuk informasi terperinci itu kunjungi situs web resmi https://update.angular.io .
Langkah Peningkatan (sebagian besar diambil dari Panduan Pembaruan Angular resmi untuk aplikasi Angular dasar menggunakan Bahan Angular):
Pastikan versi NodeJS adalah 8.9+ jika tidak memperbaruinya.
Perbarui Angular cli secara global dan lokal, dan migrasikan konfigurasi lama .angular-cli.json ke format angular.json baru dengan menjalankan berikut ini:
Perbarui semua paket kerangka kerja Angular Anda ke v6, dan versi RxJS dan TypeScript yang benar dengan menjalankan yang berikut ini:
Perbarui Angular Material ke versi terbaru dengan menjalankan yang berikut ini:
RxJS v6 memiliki perubahan besar dari v5, v6 membawa paket kompatibilitas ke belakang rxjs-compat yang akan membuat aplikasi Anda tetap bekerja, tetapi Anda harus merefaktor kode TypeScript sehingga tidak bergantung pada rxjs-compat. Untuk refactor kode TypeScript, jalankan berikut ini:
Catatan: Setelah semua dependensi Anda diperbarui ke RxJS 6, hapus rxjs- compat karena ini meningkatkan ukuran bundel. silakan lihat Panduan Peningkatan RxJS ini untuk info lebih lanjut.
Selesai menjalankan
ng serve
untuk memeriksanya.Jika Anda mendapatkan kesalahan dalam pembuatan, lihat https://update.angular.io untuk info rinci.
Tingkatkan versi dari Angular v5 ke Angular 6.0.0-rc.5
Tingkatkan rxjs ke 6.0.0-beta.0, silakan lihat Panduan Peningkatan RxJS ini untuk info lebih lanjut. RxJS v6 memiliki perubahan yang melanggar, maka pertama-tama buat kode Anda kompatibel dengan versi RxJS terbaru.
Perbarui versi NodeJS ke 8.9+ (ini diperlukan oleh versi angular cli 6)
Perbarui paket global cli Angular ke versi berikutnya.
jika versi npm <5 maka gunakan
npm cache clean
Ubah versi paket sudut di file package.json menjadi
^6.0.0-rc.5
Selanjutnya perbarui paket lokal cli Angular ke versi berikutnya dan instal paket yang disebutkan di atas.
Format konfigurasi Angular CLI telah diubah dari versi angular cli 6.0.0-rc.2, dan konfigurasi Anda yang ada dapat diperbarui secara otomatis dengan menjalankan perintah berikut. Ini akan menghapus file konfigurasi lama .angular-cli.json dan akan menulis file angular.json baru .
ng update @angular/cli --migrate-only --from=1.7.4
Catatan: - Jika Anda mendapatkan kesalahan berikut "The Angular Compiler membutuhkan TypeScript> = 2.7.2 dan <2.8.0 tetapi yang ditemukan 2.8.3". jalankan perintah berikut:
sumber
bash: rxjs-5-to-6-migrate: command not found
. Ada pemikiran?ng update @angular/core
folder proyek ionik saya, saya mendapatkan errorInvalid range: "*"
"@angular-devkit/build-angular"
dari ... Jadi itu diperbaiki olehnpm install @angular-devkit/build-angular --save-dev
. Selain itu saya harus memperbarui perpustakaan yang menggunakan sebelumnya rxjs-compat, seperting update @ngx-translate/core
,ng update @ng-bootstrap/ng-bootstrap
, karena beberapa dari mereka tidak benar diperbarui.Angular 6 baru saja dirilis.
https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
Inilah yang berhasil untuk salah satu proyek kecil saya
Anda mungkin perlu memperbarui skrip jalankan Anda di package.json Misalnya. jika Anda menggunakan tanda seperti "app" dan "lingkungan" Ini telah diperbarui masing-masing menjadi "proyek" dan "konfigurasi".
Lihat https://update.angular.io/ untuk panduan lebih rinci.
sumber
Cukup gunakan panduan peningkatan resmi yang akan memberi tahu Anda apa yang perlu Anda lakukan untuk kebutuhan khusus Anda sendiri:
https://update.angular.io/
sumber
Periksa detail peningkatan langkah demi langkah dari Angular 5 ke Angular 6. Ini memberikan detail tentang masalah yang Anda hadapi selama peningkatan dan cara mengatasinya.
Perubahan Nama Operator:
Semua operator pindah ke rxjs / operator
Metode pembuatan yang dapat diamati dipindahkan ke rxjs
Anda sudah siap. Selamat datang di Angular 6 :) Periksa posting blog saya di sini tentang cara meningkatkan
sumber
Saya harus menjalankan ulang pembaruan @ angular / cli agar angular-cli.json diubah menjadi angular.json
sumber
Silakan jalankan komentar di bawah ini untuk memperbarui ke Angular 6 dari Angular 5
sumber
Panduan lengkap
----------------- Dengan angular-cli --------------------------
1. Perbarui CLI secara global dan lokal
Menggunakan NPM (pastikan Anda memiliki node versi 8+)
npm uninstall -g @angular/cli npm cache clean npm install -g @angular/cli@latest npm i @angular/cli --save
Menggunakan Benang
yarn remove @angular/cli yarn global add @angular/cli yarn add @angular/cli
2. Perbarui dependensi
Angular 6 sekarang bergantung pada TypeScript 2.7 dan RxJS 6
Biasanya itu berarti Anda harus memperbarui kode Anda di mana pun impor dan operator RxJS digunakan, tetapi untungnya ada paket yang menangani sebagian besar pekerjaan berat:
Kemudian Anda dapat menjalankan rxjs-5-to-6-migrate
akhirnya hapus rxjs-compat
Lihat tautan ini https://alligator.io/angular/angular-6/
------------------- Tanpa angular-cli -------------------------
Jadi, Anda harus memperbarui
package.json
file Anda secara manual .Lalu lari
sumber
bash: rxjs-5-to-6-migrate: command not found
ketika mencoba menjalankan perintah rxjs-5-to-6-migrate. Ada pemikiran?Seperti yang ditunjukkan Vinay Kumar bahwa itu tidak akan memperbarui CLI Angular yang diinstal secara global. Untuk memperbaruinya secara global cukup gunakan perintah berikut:
Catatan jika Anda ingin memperbarui proyek yang ada, Anda harus memodifikasi proyek yang ada, Anda harus mengubah package.json di dalam proyek Anda.
Tidak ada perubahan yang merusak di Angular itu sendiri tetapi ada di RxJS, jadi jangan lupa untuk menggunakan pustaka rxjs-compat untuk bekerja dengan kode lama.
Saya menulis artikel yang bagus tentang instalasi / memperbarui CLI Angular http://bmnteam.com/angular-cli-installation/
sumber
cukup jalankan perintah berikut:
ng update
catatan: ini tidak akan diperbarui secara global.
sumber
Beginilah cara saya membuatnya bekerja.
Lingkungan Saya:
CLI Angular Global: 6.0.0, Lokal: 1.7.4, Angular: 5.2, Ketikan 2.5.3
ng update //update Angular Package core/common/complier... to 6.0.0
ng update @angular/cli //change angular-cli.json to angular.json
opsional jika Anda memiliki bahan sudut 5.4.2, ngx-translate 9.1.1, ng-bootstrap / ng-bootstrap 1.1.1:
ng update @angular/material //upgrade to 6.0.1
npm install @ngx-translate/[email protected] --save //upgrade ngX translate to 10.0.1 for Angular 6
5
npm install --save @ng-bootstrap/[email protected] //for ng-bootstrap
Jika Anda menggunakan Observable dan mendapatkan error:
ERROR in node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'. node_modules/rxjs/observable/of.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/observable/of'.
Perubahan:
import { Observable } from "rxjs/Observable"; import { of } from 'rxjs/observable/of';
Untuk
import { Observable, of } from "rxjs";
Masalah CLI Angular: https://github.com/angular/angular-cli/issues/10621
sumber
Ada beberapa langkah untuk meningkatkan 2/4/5 ke Angular 6.
Untuk memperbaiki masalah yang terkait dengan "angular.json": -
Simpan MIGRATION
https://github.com/ngrx/platform/blob/master/MIGRATION.md#ngrxstore
RXJS MIGRATION
https://www.academind.com/learn/javascript/rxjs-6-what-changed/
Berharap ini akan membantu Anda :)
sumber