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?

Author: Jota.Toledo, 2018-02-25

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:

  1. Upewnij się, że wersja NodeJS jest 8.9+, jeśli jej nie zaktualizujesz.

  2. 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

  3. Zaktualizuj wszystkie pakiety Angular framework do Wersji v6 i poprawnej wersji RxJS i TypeScript uruchamiając następujące:

    Ng update @ angular / core

  4. Zaktualizuj Materiał kątowy do najnowszej wersji, uruchamiając następujące czynności:

    Ng update @ angular / material

  5. 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.json

    Uwaga: - 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

  6. 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.

  1. 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.

  2. Aktualizacja Wersji NodeJS do wersji 8.9+ (jest to wymagane przez angular CLI 6 version)

  3. 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
    
  4. 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"
    }
    
  5. 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 
    
  6. 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]
 240
Author: Ashish Jain,
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

  1. npm install-g @angular/cli
  2. npm install @angular / cli
  3. ng update @angular / cli --migrate-only --from=1.7.0
  4. ng update @ angular / core
  5. npm install rxjs-compat
  6. 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.

 17
Author: Arjun Shankar,
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:

Upgrade angular

Https://update.angular.io/

 13
Author: Valentin Despa,
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ć

 4
Author: uday kumar,
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

 3
Author: Kris Bonev,
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/

 1
Author: Maksim B.,
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

  1. ng update @ angular / cli
  2. ng update @ angular / core
  3. npm install rxjs-compat (w celu obsługi starszej wersji rxjs 5.6)
  4. npm install-g rxjs-tslint (aby zmienić format rxjs 5 na rxjs 6 w kodzie. Zainstaluj globalnie wtedy tylko będzie działać)
  5. rxjs-5-to-6-migrate-P src / tsconfig.app.json (po instalacji musimy zmienić go w naszym kodzie źródłowym na rxjs6 format)
  6. npm uninstall rxjs-compat (Remove this finally)
 1
Author: user2716958,
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

  1. 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

  2. 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.

paczka.JSON screenshoot pakietów aktualizacji

Then run

 npm update
 npm install --save rxjs-compat
 npm i -g rxjs-tslint
 rxjs-5-to-6-migrate -p src/tsconfig.app.json
 1
Author: bereket gebredingle,
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.0 npm install -g @angular/cli or npm install @angular/cli

  1. ng update //update Angular Package core/common/complier... to 6.0.0

  2. 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:

  1. ng update @angular/material //upgrade to 6.0.1

  2. 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

 0
Author: Ryan Huang,
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:)

 0
Author: aditya kumar,
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.

 -1
Author: Vinay Kumar,
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