Chcesz uaktualnić projekt z Angular V5 do Angular v6
Ponieważ Angular 6 jest tutaj, chcę uaktualnić lub przenieść moją aplikację klienta angular 5 do angular 6, ale nie dostaję żadnego samouczka ani niczego, co może mnie przez to przeprowadzić.
Według mnie po prostu muszę uruchomić nowy Angular CLI, a następnie przenieść moje starsze źródło do nowego projektu. Czytałem, że Angular 6 używa nowego renderera o nazwie Ivy. Czy będę musiał zmienić projekt według Ivy?
11 answers
Edit on 07-May-2018: Wersja 6 Gry Angular została wydana Official Angular blog link . Wspomniałem o ogólnych krokach aktualizacji poniżej, ale przed i po aktualizacji musisz wprowadzić zmiany w kodzie, aby działał w v6, aby uzyskać szczegółowe informacje na oficjalnej stronie internetowej https://update.angular.io .
Kroki Aktualizacji:
Upewnij się, że wersja NodeJS jest 8.9+, jeśli jej nie zaktualizujesz.
-
Update Angular cli globalnie i lokalnie, i przenieść starą konfigurację .angular-cli.json do nowego kątowego.format json poprzez uruchomienie następującego :
Npm install-g @angular/cli
npm install @angular / cli
ng update @ angular / cli -
Zaktualizuj wszystkie pakiety Angular framework do Wersji v6 i poprawnej wersji RxJS i TypeScript uruchamiając następujące:
Ng update @ angular / core
-
Zaktualizuj Materiał kątowy do najnowszej wersji, uruchamiając następujące czynności:
Ng update @ angular / material
-
RxJS v6 ma duże zmiany w stosunku do v5, v6 przynosi wsteczną kompatybilność pakietu rxjs-compat, który będzie działał, ale powinieneś refaktorować kod maszynopisu, aby nie zależał od rxjs-compat. Do refakturowania kodu maszynopisu należy wykonać następujące czynności:
Npm install-g rxjs-tslint
rxjs-5-to-6-migrate-P src / tsconfig.app.jsonUwaga: - Gdy wszystkie zależności zostaną zaktualizowane do RxJS 6, Usuń rxjs- compat, ponieważ zwiększa rozmiar pakietu. więcej informacji można znaleźć w tym Rxjs Upgrade Guide.
Npm uninstall rxjs-compat
Gotowe Uruchom
ng serve
, aby to sprawdzić.
Jeśli pojawią się błędy w build reference https://update.angular.io szczegółowe informacje.
Edytuj na 20-Apr-2018: Zaktualizowana wersja kątowa do 6.0.0-rc.5 i dodano Krok 6 dla kątowych zmian formatu konfiguracji CLI.
Upgrade rxjs do 6.0.0-beta.0, zobacz ten Rxjs Upgrade Guide aby uzyskać więcej informacji. RxJS v6 ma przełomową zmianę, więc najpierw upewnij się, że kod jest zgodny z najnowszą wersją RxJS.
-
Aktualizacja Wersji NodeJS do wersji 8.9+ (jest to wymagane przez angular CLI 6 version)
-
Update Angular CLI global package to next wersja.
npm uninstall -g @angular/cli npm cache verify
Jeśli wersja npm jest npm cache clean
npm install -g @angular/cli@next
-
Zmiana wersji pakietów w pakiecie.plik json do
^6.0.0-rc.5
"dependencies": { "@angular/animations": "^6.0.0-rc.5", "@angular/cdk": "^6.0.0-rc.12", "@angular/common": "^6.0.0-rc.5", "@angular/compiler": "^6.0.0-rc.5", "@angular/core": "^6.0.0-rc.5", "@angular/forms": "^6.0.0-rc.5", "@angular/http": "^6.0.0-rc.5", "@angular/material": "^6.0.0-rc.12", "@angular/platform-browser": "^6.0.0-rc.5", "@angular/platform-browser-dynamic": "^6.0.0-rc.5", "@angular/router": "^6.0.0-rc.5", "core-js": "^2.5.5", "karma-jasmine": "^1.1.1", "rxjs": "^6.0.0-uncanny-rc.7", "rxjs-compat": "^6.0.0-uncanny-rc.7", "zone.js": "^0.8.26" }, "devDependencies": { "@angular-devkit/build-angular": "~0.5.0", "@angular/cli": "^6.0.0-rc.5", "@angular/compiler-cli": "^6.0.0-rc.5", "@types/jasmine": "2.5.38", "@types/node": "~8.9.4", "codelyzer": "~4.1.0", "jasmine-core": "~2.5.2", "jasmine-spec-reporter": "~3.2.0", "karma": "~1.4.1", "karma-chrome-launcher": "~2.0.0", "karma-cli": "~1.0.1", "karma-coverage-istanbul-reporter": "^0.2.0", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", "postcss-loader": "^2.1.4", "protractor": "~5.1.0", "ts-node": "~5.0.0", "tslint": "~5.9.1", "typescript": "^2.7.2" }
-
Następna aktualizacja lokalnego pakietu Angular cli do następnej wersji i instalacja wyżej wymienionych pakietów.
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@next npm install
-
Format konfiguracji Angular CLI został zmieniony z angular CLI 6.0.0-rc.2 wersji, a istniejąca konfiguracja może być aktualizowana automatycznie, uruchamiając następujące dowództwo. Usunie stary plik konfiguracyjny .angular-cli.json i napisze nowy .plik json.
ng update @angular/cli --migrate-only --from=1.7.4
Uwaga: - Jeśli pojawi się błąd "kompilator kątowy wymaga maszynopisu > = 2.7.2 i
npm install [email protected]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-02 11:16:48
Angular 6 właśnie został wydany.
Https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
Oto, co zadziałało w jednym z moich mniejszych projektów
- npm install-g @angular/cli
- npm install @angular / cli
- ng update @angular / cli --migrate-only --from=1.7.0
- ng update @ angular / core
- npm install rxjs-compat
- ng serve
Być może będziesz musiał zaktualizować swoje skrypty run w paczka.json Dla np. jeśli używasz FLAG takich jak " app " i " environment" Zostały one zaktualizowane odpowiednio do "projektu" i "konfiguracji".
Refer https://update.angular.io / dla bardziej szczegółowego przewodnika.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-04 01:30:31
Po prostu skorzystaj z oficjalnego przewodnika aktualizacji, który powie Ci, co musisz zrobić dla własnych potrzeb:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-14 09:20:22
Sprawdź krok po kroku Uaktualnij szczegóły z kątowego 5 do kątowego 6. Zawierają one szczegółowe informacje na temat problemów napotkanych podczas aktualizacji i sposobów ich rozwiązywania.
- zaktualizuj swoją wersję węzła do wersji 8 lub wyższej i zainstaluj najnowszą wersję Angular cli globalnie przez npm i-g @angular/cli@latest.
- Angular 6 używa angular.json jako plik konfiguracyjny zamiast .anguar-cli.json. Również tslint został zmieniony. Sprawdź https://github.com/angular/angular-cli/wiki/angular-workspace na najnowsze szczegóły konfiguracji. Musisz przenieść dowolny z istniejących konfiguracja do nowego pliku konfiguracyjnego.
- aby to zrobić stwórz inny atrapa projektu z najnowszym cli przy użyciu nowego "twojego-projektu" i tego samego wartości domyślne, takie jak prefiks, styl itp. użyte wcześniej w projekcie. Utwórz nowy projekt z cli https://github.com/angular/angular-cli/wiki/new
- użycie https://update.angular.io / aby sprawdzić, co zostało zmienione z twojego aktualna wersja Angular → Kątowa 6 Zapewnia korzystanie z jak Zmień/napraw je.
- wykonaj powyższe kroki i skopiuj/zaktualizuj kanciaste.plik json utworzony w Kroku 2. Czy npm i w Twoim projekcie, aby uzyskać wszystkie zależności i czy npm update
- teraz nadchodzi duża część. RxJS ulepszanie i rozwiązywanie konfliktów. RxJS ustandaryzował import operatorów i obserwowalnych twórców z tej wersji. Do npm i-g rxjs-tslint i dodaj poniżej konfigurację lint w tslint.json
{
"rulesDirectory": [
"node_modules/rxjs-tslint"
],
"rules": {
"rxjs-collapse-imports": true,
"rxjs-pipeable-operators-only": true,
"rxjs-no-static-observable-methods": true,
"rxjs-proper-imports": true
}
}
- Teraz uruchom ng lint -- fix. Naprawia to kilka elementów, ale większość pozostałych problemów zostanie podświetlona i musisz to naprawić ręcznie.
Zmiana nazwy operatorów:
do -> tap,
catch -> catchError,
switch -> switchAll,
finally -> finalize
Wszystkie operatory przeniesione do rxjs / operatory
import { map, filter, reduce } from 'rxjs/operators';
Obserwowalne metody tworzenia są przenoszone do rxjs
import { Observable, Subject, of, from } from 'rxjs';
Wszystko gotowe. Witaj na Angular 6:) Sprawdź mój wpis na blogu tutaj, jak uaktualnić
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-03 12:24:14
W tym celu trzeba było uruchomić ponownie ng update @angular/cli dla angular-cli.json do zmiany na angular.json
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-02 22:24:24
Jak zauważył Vinay Kumar, nie zaktualizuje globalnego zainstalowanego Angular CLI. Aby zaktualizować go globalnie, wystarczy użyć następujących poleceń:
npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@latest
Uwaga Jeśli chcesz zaktualizować istniejący projekt musisz zmodyfikować istniejący projekt, powinieneś zmienić Pakiet.json wewnątrz twojego projektu.
Nie ma żadnych przełomowych zmian w samym Angular, ale są one w RxJS, więc nie zapomnij użyć biblioteki rxjs-compat do pracy ze starszym kodem.
npm install --save rxjs-compat
Napisałem dobry artykuł o instalacja / aktualizacja Cli http://bmnteam.com/angular-cli-installation/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-05 11:13:24
Proszę uruchomić poniższe komentarze, aby zaktualizować do Angular 6 z Angular 5
- ng update @ angular / cli
- ng update @ angular / core
- npm install rxjs-compat (w celu obsługi starszej wersji rxjs 5.6)
- npm install-g rxjs-tslint (aby zmienić format rxjs 5 na rxjs 6 w kodzie. Zainstaluj globalnie wtedy tylko będzie działać)
- rxjs-5-to-6-migrate-P src / tsconfig.app.json (po instalacji musimy zmienić go w naszym kodzie źródłowym na rxjs6 format)
- npm uninstall rxjs-compat (Remove this finally)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-01 09:24:28
kompletny przewodnik
-----------------z angular-cli--------------------------
1. Aktualizacja CLI globalnie i lokalnie
-
Używanie NPM (upewnij się, że masz wersję węzła 8+ )
npm uninstall -g @angular/cli npm cache clean npm install -g @angular/cli@latest npm i @angular/cli --save
-
Używając Przędzy
yarn remove @angular/cli yarn global add @angular/cli yarn add @angular/cli
2.Update dependencies
ng update @angular/cli
ng update @angular/core
ng update @angular/material
ng update rxjs
Angular 6 teraz zależy od TypeScript 2.7 i RxJS 6
Normalnie oznacza to, że musisz zaktualizować swój kod wszędzie import RxJS i operatorów są używane, ale na szczęście jest pakiet, który zajmuje się większością ciężkich podnoszenia: {]}
npm i -g rxjs-tslint
//or using yarn
yarn global add rxjs-tslint
Następnie możesz uruchomić rxjs-5-do-6-migrate
rxjs-5-to-6-migrate -p src/tsconfig.app.json
Wreszcie usunąć rxjs-compat
npm uninstall rxjs-compat
// or using Yarn
yarn remove rxjs-compat
Zobacz ten link https://alligator.io/angular/angular-6/
-------------------Bez angular-cli-------------------------
Więc musisz ręcznie zaktualizować swój plik package.json
.
Then run
npm update
npm install --save rxjs-compat
npm i -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-22 22:00:39
Tak to działa.
Moje Otoczenie:
Angular Cli Global : 6.0.0, Local: 1.7.4, Angular: 5.2, Typescript 2.5.3
Uwaga: aby włączyć
ng Update
musisz najpierw zainstalować Angular CLI 6.0npm install -g @angular/cli or npm install @angular/cli
ng update //update Angular Package core/common/complier... to 6.0.0
ng update @angular/cli //change angular-cli.json to angular.json
Opcjonalnie jeśli masz angular-material 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
Jeśli użyjesz Observable i otrzymasz błąd:
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'.
Zmiana: import { Observable } from "rxjs/Observable"; import { of } from 'rxjs/observable/of';
Do
import { Observable, of } from "rxjs";
Problem z CLI: https://github.com/angular/angular-cli/issues/10621
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-08 13:49:29
Istnieje kilka kroków, aby uaktualnić 2/4/5 do Angular 6.
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
Aby rozwiązać problem związany z "angular.json": -
ng update @angular/cli --migrate-only --from=1.7.4
Migracja sklepu
https://github.com/ngrx/platform/blob/master/MIGRATION.md#ngrxstore
Migracja RXJS
https://www.academind.com/learn/javascript/rxjs-6-what-changed/
Mam nadzieję, że to ci pomoże:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-03 09:47:37
Po prostu uruchom następujące polecenie:
ng update
Uwaga: nie będzie to aktualizowane globalnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-04 07:43:01