Aktualizacja Angular 2->4 i TypeScript 2.2->2.4

Z okazji wolnego dnia wpadłam na pomysł zaktualizowania oprogramowania aplikacji.

Zdecydowałam się na update Angulara z wersji 2.2.1 na 4.3.3.

Wiązało się to ze zmianą wersji pakietów w pliku package.json. Byłam sceptycznie nastawiona do zmiany, ponieważ nie chciałam opóźniać (i tak spowolnionych własnym lenistwem i brakiem czasu) prac nad projektem. Z okazji dnia wolnego zmobilizowałam się, usiadłam, zmieniłam package.json:

"dependencies": {
    "@angular/animations": "^4.3.4",
    "@angular/common": "^4.3.4",
    "@angular/compiler": "^4.3.4",
    "@angular/compiler-cli": "^4.3.4",
    "@angular/core": "^4.3.4",
    "@angular/forms": "^4.3.4",
    "@angular/http": "^4.3.4",
    "@angular/platform-browser": "^4.3.4",
    "@angular/platform-browser-dynamic": "^4.3.4",
    "@angular/platform-server": "^4.3.4",
    "@angular/router": "^4.3.4",
    "bootstrap": "^3.3.7",
    "core-js": "^2.4.1",
    "ie-shim": "^0.1.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.4.2",
    "systemjs": "0.19.47",
    "typescript": "^2.4.2",
    "zone.js": "^0.8.5"
  }

i wywołałam komendy:

rm -rf node_modules (usunięcie katalogu node_modules)

 

npm install (instalacja pakietów na podstawie plików konfiguracyjnych)

Z logów npm odczytałam informację, że używam dwóch przestarzałych pakietów @angular/upgrade i angular2-in-memory-api. Usunęłam więc je, jeszcze raz zrobiłam npm install, zrestartowałam Visual Studio na wszelki wypadek i… gotowe. Magia – wreszcie coś zadziałało tak, jak chciałam.

Idąc za ciosem, stwierdziłam, że może jeszcze zrobię update TypeScript. Powinno być to proste: pobrać najnowszą wersję TypeScript przez komendę

npm install typescript@next.

Okazało się jednak, że najnowsza wersja to 2.5.0-dev.20170815. Stwierdziłam, że wolę jakąś wersję stabilną, więc pobrałam 2.4.1 (bez żadnych dopisków dev itp.). I tutaj zaczęły się schody. Kojarzyłam, że muszę również zrobić update ręczny TypeScript w Visual Studio (korzystałam z wersji 2.2.1). Skorzystałam więc z instrukcji załączonej pod linkiem i doinstalowałam brakujące rzeczy. Musiałam zrestartować komputer. Po ponownym włączeniu VS okazało się, że mam błąd dotyczący TypeScript

„package did not load correctly”.

errorPoszukałam w internetach i wyszło na to, że Visual zapamiętał jakieś wcześniejsze ustawienia. Tutaj znalazłam rozwiązanie, jak usunąć zapisane ustawienia (wyczyszczenie folderu VisualStudio\14.0\ComponentModelCache w localAppData). Pomogło, aczkolwiek to nie był koniec problemów.

Program nie chciał się skompilować. Miałam błędy dotyczące Promise np.

„Type Promise <{}> is not assignable to type Promise”.

Dodatkowo kolejny błąd to

Supplied parameters do not match any signature of call target.”

Najprawdopodobniej w odniesieniu do metody then() – w najnowszej wersji TypeScript wychodzi na to, że jest ona bezparametrowa? Nie wiem, nie udało znaleźć mi się rozwiązania. Cofnęłam zmiany i zostałam przy wersji 2.2.1.

Musiałam jeszcze poprawić wersję wrzuconą na Azure (w konsoli w panelu administratora musiałam usunąć folder node_modules i wywołać metodę npm install).

Dodaj komentarz