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”.
Poszukał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).