Stwierdziłam ostatnio, że czas zaktualizować pakiety w mojej aplikacji. Kilka miesięcy wcześniej wyszła nowa wersja Angulara (5), więc to był dobry czas na jego aktualizację.
Błąd @angular/compiler-cli requires a peer of typescript but none was installed.
Już na początku aktualizacji okazało się, że mam błąd:
@angular/compiler-cli@5.2.3 requires a peer of typescript@>=2.4.2 <2.7 but none was installed.
Jak widać, nie zgadza się wersja TypeScripta – potrzeba nowszej wersji.
Typescript – aktualizacja w konsoli
No to trzeba było go zaktualizować wykorzystując komendy:
npm install typescript@latest -g
lub
npm upgrade -g typescript
Potem należy sprawdzić wersję TypeScripta:
tsc –version
No i co, gdy dalej jest taka sama wersja? Przydaje się sprawdzenie, gdzie TypeScript jest zainstalowany:
where tsc
Jak widać, miałam kilka miejsc, w których był zainstalowany TypeScript. Usunęłam więc niepotrzebne ścieżki spoza katalogu nodejs.
Typescript – aktualizacja w Visual Studio
Nie można zapomnieć o tym, że Visual Studio potrzebuje aktualizacji swojego pakietu TypeScript. Nową wersję można pobrać pod linkiem lub wyszukać w liście pakietów (pobierze się automatycznie):
Dodatkowo należy wejść w ustawienia projektu, który wykorzystuje TypeScript i ustawić TypeScript version na najbardziej aktualną lub konkretną wersję.
Co potem? Potem najprawdopodobniej projekt nie będzie się buildował. Wtedy zwykle czyszczę całą solucję, usuwam i instaluję od nowa node_modules i w końcu działa. Ale nie tym razem. Okazuje się, że nie doczytałam komunikatu błędu opisywanego na początku, który wyraźnie wskazywał na wersję TypeScript niższą niż 2.7. Więc wracam do wcześniejszej wersji TypeScript (2.5.3):
npm install typescript@2.5.3
I jeszcze raz aktualizuję Angulara:
npm install @angular/compiler-cli@latest
Po powtórzeniu czyszczenia solucji i przeinstalowaniu pakietów program się builduje.
Po uruchomieniu aplikacji dla pewności można zerknąć w kod HTML i sprawdzić wersję Angulara:
Typescript – aktualizacja Resharper
Jeśli korzystasz z Resharpera, warto również w nim zmienić wersję TypeScript:
Resharper -> Options -> Code Editing -> TypeScript -> Inspections -> Typescript language level.