Jakiej wersji języka TypeScript używa program Visual Studio Code? Jak to zaktualizować?

111

Jak mogę sprawdzić, która wersja języka TypeScript jest używana w programie Visual Studio Code? W szczególności używałem języka TypeScript 1.8.10 i VSCode 1.4.0. Najpierw zaktualizowałem VSCode do najnowszej wersji, czyli 1.5.3. Ale sprawdzając z wiersza poleceń, zauważyłem, że moja wersja TypeScript to nadal 1.8.10. Zaktualizowałem więc TypeScript z wiersza poleceń i teraz jest to 2.0.3.

Czy istnieje sposób, aby upewnić się, czy program Visual Studio Code używa wersji 2.0.3?

Czy istnieje metoda aktualizowania Visual Studio Code, która automatycznie aktualizuje TypeScript do najnowszej wydanej wersji, czy też aktualizacja TypeScript musi być wykonywana niezależnie?

Richard Fuhr
źródło
tsc --version ??
Hackerman
Uważam, że jest to ustawienie pliku projektu. Jeśli otworzysz plik projektu (np. Plik .csproj) za pomocą notatnika, możesz usunąć element wersji maszynopisu, co powinno zmusić projekt do korzystania z najnowszej wersji zainstalowanej na komputerze.
Igor
@Hackerman Nie, to pokazuje tylko globalną wersję TSC.
Fabian Lauer,

Odpowiedzi:

191

Czy TypeScript może być aktualizowany automatycznie?

VS Code jest dostarczany z najnowszą stabilną wersją TypeScript.

- z dokumentów VS Code

Oznacza to, że nie ma możliwości automatycznego uaktualnienia wersji TypeScript używanej przez VS Code. Można jednak zastąpić wersję języka TypeScript używaną przez program VS Code, modyfikując ustawienia użytkownika lub ustawienia obszaru roboczego.


Jakiej wersji języka TypeScript używa VS Code?

Po otwarciu pliku TypeScript VS Code powinien wyświetlać wersję TypeScript na pasku stanu w prawym dolnym rogu ekranu:

Wersja TypeScript paska stanu VS Code


Zmiana globalnej wersji TypeScript

  1. Na przykład zainstaluj żądaną wersję TypeScript globalnie npm install -g [email protected]
  2. Otwórz ustawienia użytkownika VS Code ( F1> Open User Settings)
  3. Zaktualizuj / wstaw "typescript.tsdk": "{your_global_npm_path}/typescript/lib", możesz sprawdzić {your_global_npm_path}, wpisując npm root -g

Teraz wszystkie projekty otwierane za pomocą VS Code będą używać tej wersji TypeScript, chyba że oczywiście istnieje ustawienie obszaru roboczego, które to zastępuje.


Zmiana lokalnej wersji języka TypeScript

  1. Otwórz projekt w VS Code
  2. Na przykład zainstaluj lokalnie żądaną wersję języka TypeScript npm install --save-dev [email protected]

    --save-devBędzie zaktualizować Project package.json, dodając wersję maszynopisu zainstalowany jako devDependency.

  3. Otwórz ustawienia obszaru roboczego VS Code ( F1> Open Workspace Settings)

  4. Aktualizuj / wstaw "typescript.tsdk": "./node_modules/typescript/lib"

    Teraz tylko projekt, w którym zainstalowano tę wersję języka TypeScript, będzie używać tej wersji języka TypeScript, instalacja globalna zostanie zignorowana przez program VS Code w tym projekcie.

  5. Po dodaniu typescript.tsdkwpisu konieczne jest również użycie interfejsu użytkownika VS Code, aby wybrać nową wersję:

    • Kliknij wersję wyświetlaną w stopce VS Code:

      vs stopka kodu

    • Wybierz go w interfejsie użytkownika:

      wybierz wersję ts w interfejsie użytkownika


Zobacz też:

Fabian Lauer
źródło
3
FYI Jestem w systemie Windows, musiałem umieścić pełną ścieżkę do mojego folderu modułów globalnego węzła - C:\\Users\\myname\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib. Możesz dwukrotnie sprawdzić swoje za pomocą npm root -gw wierszu poleceń. W przeciwnym razie powinno to prawdopodobnie zostać oznaczone jako odpowiedź @Richard Fuhr
Cody
Dodanie tego ustawienia spowodowało, że kod Visual Studio całkowicie wyłączył wszystkie funkcje języka maszynopisu. To nie jest odpowiedź, której szukasz.
BentOnCoding
3
@BentOnCoding To niczego nie wyłączy. Sprawdź, czy w tsdkścieżce nie ma literówek i upewnij się, że w repozytorium jest zainstalowany TypeScript. Również 11 innych osób uznało to za wystarczające, aby zagłosować ;-)
Fabian Lauer
Wygląda na to, że program VS Code automatycznie pobiera aktualizacje wersji języka TypeScript, więc odpowiedź może nie być już aktualna.
Mickey Segal
1
To ustawienie można zamiast tego zastosować do ustawienia obszaru roboczego, aby projekt, który jest przeznaczony specjalnie dla określonej wersji, można skonfigurować tak, aby pozostał w ten sposób. Również UWAGA nie można kierować MSI zainstalowanych wersji nie są one kompatybilne. Zobacz stronę: code.visualstudio.com/docs/typescript/typescript-compiling
Itanex
20

Visual Studio Code jest dostarczany z własną stabilną wersją TypeScript, ale możesz przełączyć się na nowszą wersję, zgodnie z opisem w ich dokumentacji

VS Code jest dostarczany z najnowszą stabilną wersją TypeScript. Jeśli chcesz użyć nowszej wersji języka TypeScript, możesz zdefiniować ustawienie typescript.tsdk ( Plik > Preferencje > Ustawienia użytkownika / obszaru roboczego ) wskazujące na katalog zawierający plik TypeScript tsserver.js .
...
Na przykład:

{
   "typescript.tsdk": "node_modules/typescript/lib"
}
DAXaholic
źródło
Moja wersja tsc - to 2.0.3, ale nie mogę znaleźć pliku tsserver.js na moim Macu, więc nie mogę zmienić ustawień w VSCode
Richard Fuhr
Dodanie tego ustawienia spowodowało, że kod Visual Studio całkowicie wyłączył wszystkie funkcje języka maszynopisu. To nie jest odpowiedź, której szukasz.
BentOnCoding
Myślę, że jest to opisane dokładniej tutaj gist.github.com/tonysneed/bb6d442103a057578a9498f106e45ac5
Gregor Schmitz
17

Czy istnieje sposób, aby upewnić się, czy program Visual Studio Code używa wersji 2.0.3?

Otwórz plik TypeScript w Visual Studio Code, aw prawym dolnym rogu zobaczysz używaną wersję TypeScript:

wprowadź opis obrazu tutaj

Czy istnieje metoda aktualizowania Visual Studio Code, która automatycznie aktualizuje TypeScript do najnowszej wydanej wersji, czy też aktualizacja TypeScript musi być wykonywana niezależnie?

Sposób, w jaki to robiłem, to jawne wskazanie Visual Studio Code folderu, w którym jest zainstalowany moduł TypeScript npm. Jestem w systemie Windows, więc po uruchomieniu polecenia npm w celu zainstalowania TypeScript ( npm install -g typescript) zainstaluje go w tym folderze:

C:\Users\username\AppData\Roaming\npm\node_modules\typescript\

Musisz więc powiedzieć programowi Visual Studio Code, aby używał libfolderu instalacji TypeScript npm. Robisz to poprzez:

  1. Otwórz ustawienia VS Code (Plik -> Preferencje -> Ustawienia)

  2. Wyszukaj typescript.tsdkustawienie wprowadź opis obrazu tutaj

  3. Dowiedzieć się, gdzie zainstalowany npm maszynopis z: npm list -g typescript. W moim przypadku wróciłC:\Users\username\AppData\Roaming\npm

  4. Zastąp wartość typescript.tsdkustawienia na: C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib Zwróć uwagę na użycie podwójnych lewych ukośników, aby uzyskać poprawnie zmieniony znak ucieczki z odwrotnymi ukośnikami.

  5. Upewnij się, że VS Code używa wersji npm języka TypeScript do obsługi funkcji Intellisense, otwierając plik TypeScript, klikając numer wersji TypeScript w prawym dolnym rogu i sprawdzając w oknie zadania, że ​​VS Code ładuje TypeScript z katalogu określonego w kroku 4:

wprowadź opis obrazu tutaj

  1. Upewnij się, że program VS Code używa poprawnej wersji języka TypeScript do kompilacji, przechodząc do tego folderu i zmieniając nazwę pliku:

C: \ Users \ nazwa użytkownika \ AppData \ Roaming \ npm \ tsc.cmd (do czegoś takiego jak tsc1.cmd)

Teraz spróbuj zbudować w VS Code (Tasks -> Run Tasks -> tsc: build - tsconfig.json) i powinieneś otrzymać ten komunikat o błędzie w oknie terminala VS Code:

'tsc' is not recognized as an internal or external command, operable program or batch file.
The terminal process terminated with exit code: 1
  1. Zmień plik z powrotem na tsc.cmd, a teraz powinieneś być w stanie skompilować i mieć Intellisense w kodzie VS dla globalnie zainstalowanego pakietu węzłów TypeScript
gomisha
źródło
2
Dlaczego nie była to zmiana odpowiedzi, która zawierała już 99% tych informacji?
SgtPooki
Chyba nigdy się nie dowiemy
Denny
4

Na dolnym pasku powinien pojawić się numer wersji:

wprowadź opis obrazu tutaj

Po kliknięciu numeru (2.4.0 powyżej) pojawi się opcja wyboru wersji, której chcesz użyć:

wprowadź opis obrazu tutaj

Jeśli nie widzisz żądanej wersji, oznacza to, że prawdopodobnie nie jest ona zainstalowana i musisz ją zainstalować.

npm install -g typescript@2.7.2

Zastąp 2.7.2wersją, którą chcesz zainstalować.

mattnedrich
źródło
1

Chociaż nie mogłem znaleźć pliku tsserver.js, gdy korzystałem ze Spotlight na moim Macu, spróbowałem ponownie użyć mdfind i znalazłem jego lokalizację jako „/ usr / local / lib / node_modules / typescript / lib /”

Użyłem więc tej ścieżki podczas edycji ustawień mojego obszaru roboczego w settings.json

Teraz używam mojej najnowszej wersji TypeScript, a VSCode informuje mnie, że używam najnowszej wersji.

Richard Fuhr
źródło
0

Miałem podobny problem i teraz udało mi się uzyskać aktualną wersję TypeScript poprzez modyfikację zmiennych środowiskowych w moim systemie. W moim przypadku potrzebujemy wersji TypeScript wyższej niż 2. Ale mogłem używać tylko wersji 1.8.3. Po pierwsze przeszedłem do zmiennych środowiskowych systemu i sprawdziłem zmienną ścieżki. Tam znalazłem odniesienie do TypeScript w wersji 1.8.3.

C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript \ 1.8.3 \

Kiedy sprawdzałem katalog nadrzędny, była to również najwyższa wersja zainstalowana w tym katalogu. Pomyślałbym, instalując na całym świecie najnowszą wersję, że zobaczyłbym to również tutaj, ale nie ma. Wersja, którą tutaj widzisz, to ta, która została zainstalowana z programem Visual Studio (a nie kodem Visual Studio).

Poszedłem więc do Visual Studio i zaktualizowałem bibliotekę TypeScript do najnowszej wersji poprzez Opcje> Rozszerzenia i aktualizacje. Tam szukałem najnowszej wersji TypeScript i zainstalowałem ją.

Spowodowało to udostępnienie nowej wersji we wspomnianym wcześniej katalogu nadrzędnym. Następnie zmieniłem zmienną ścieżki na:

C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript \ 2.2 \

Kiedy teraz otwieram VS Code i wpisuję tsc -v, widzę, że używam najnowszej wersji. Żadnych wiadomości o niezgodności, itp. Mam nadzieję, że to wam trochę pomoże.

Thomas Van Herpe
źródło
0

Pakiet Typescript zawiera kompilator i usługę językową. VScode jest dostarczany z usługą języka Typescript, a nie z kompilatorem. Możesz zobaczyć usługę językową w prawym dolnym rogu, tak jak pokazują inne odpowiedzi, ale nie możesz zobaczyć, która wersja kompilatora jest używana.

Możesz mieć różne wersje kompilatora i usługi językowej.

Lombas
źródło
0

Aby automatycznie używać wersji Typescript zainstalowanej w obszarze roboczym node_modules, bez konieczności jej konfigurowania za każdym razem, gdy konfigurujesz nowy obszar roboczy, możesz ustawić domyślne ustawienie Typescript w ustawieniach użytkownika JSON ( nie obszar roboczy ), aby używać ścieżki względnej:

{
    // ... other User settings
    "typescript.tsdk": "./node_modules/typescript/lib"
}

Teraz po uruchomieniu polecenia „Wybierz wersję skryptu maszynowego ...” „Wersja VS Code” będzie zawsze taka sama jak „Wersja obszaru roboczego”:

Polecenie „Wybierz wersję maszynopisu ...”

Jedynym potencjalnym minusem jest to, że oznacza to, że zawsze potrzebujesz zainstalowanego Typescript w obszarze roboczym, w którym pracujesz. Chociaż, jeśli piszesz gdziekolwiek maszynopis, myślę, że jest to rozsądne oczekiwanie.

Julien
źródło