Visual Studio Code: compile typescript module

Właśnie pobrałem Nowy Visual Studio Code i moje pierwsze wrażenie jest bardzo pozytywne. Dla maszynopisu intellisense działa pięknie.

Jest jednak dziwny problem: VS Code nie wydaje się być w stanie kompilować modułów maszynopisu.

Ten kod:

/// <reference path="../definitions/react.d.ts"/>

import React = require("react");

Kompiluje doskonale na cmd, z

Tsc -- module commonjs main.ts

Ale w kodzie VS, druga linia jest podświetlona na czerwono, a edytor narzeka:

Nie można skompilować zewnętrznych modułów, chyba że podano flagę "- module "

Oczywiście każdy kod maszynopisu wykorzystujący Moduły musi być skompilowany z tą flagą. Ale jeśli IDE jest świadome użycia modułów, dlaczego nie Ustawia flagi ? Kod maszynopisu bez modułów jest kompilowany na save, bez problemów.

Chyba brakuje mi jakiegoś pliku konfiguracyjnego kompilatora. Czy istnieje coś takiego ? Gdzie mogę go znaleźć ?

UPDATE

Dodałem tsconfig.plik json:

{
    "compilerOptions": {
        "target": "ES5",
        "module": "commonjs",
        "sourceMap": true
    }
}

To rzeczywiście usuwa błąd. Niestety IDE nie kompiluje już mojego kodu. Na początku myślałem config.json wyciszy tylko komunikat o błędzie, ale robi coś więcej. Intellisense działa teraz w pliku przykładowym. Jeśli wpiszę React autocompletion zostanie uruchomiony i najwyraźniej zna Reacta, ponieważ wyświetlane są znaczące sugestie.

Dlaczego VS Code nie kompiluje pliku do js ? Próbowałem skonfigurować task runner do tego zadania, ale wydaje się, że nie działa:
{
    "version": "0.1.0",

    // The command is tsc.
    "command": "tsc",

    // Show the output window only if unrecognized errors occur. 
    "showOutput": "silent",

    // Under windows use tsc.exe. This ensures we don't need a shell.
    "windows": {
        "command": "tsc.exe"
    },

    // args is the HelloWorld program to compile.
    "args": ["--module commonjs","${file}"],

    // use the standard tsc problem matcher to find compile problems
    // in the output.
    "problemMatcher": "$tsc"
}

Jeśli zapiszę plik, nic się nie stanie, nawet jeśli jawnie uruchomię zadanie budowania, nie będzie odpowiedzi. Nazwa zadania, które edytowałem to "tsc", to też próbowałem uruchomić. Bez efektu. Potem zmieniłem argumenty na "args": ["--module commonjs","main.ts"], Brak odpowiedzi.

UPDATE

Jedyny sposób, w jaki biegacz zadań wydaje się działać, jest z tymi dwoma ustawieniami:

"args": ["${file}"], 
"isShellCommand": true, 

Oto Wyjścia:

  • "args": ["-p"],
  • "args": ["-p", "."],

Błąd TS5023: Nieznana opcja kompilatora 'p'.

  • "args": ["."],

Błąd TS6053: plik'.nie znaleziono.

Author: Daniel Santos, 2015-05-05

5 answers

Ja również stanąłem dziś przed tym samym problemem. Śledziłem ten link http://blogs.msdn.com/b/typescript/archive/2015/04/30/using-typescript-in-visual-studio-code.aspx Po wykonaniu wszystkich kroków konfiguracji, uruchomiłem to polecenie w wierszu poleceń i zaczęło generować pliki JavaScript

npm install -g typescript

Musimy upewnić się, że mamy zainstalowane node i npm i dostępne za pomocą wiersza poleceń. Powodem, dla którego stwierdziłem, że nie działa, ponieważ w tasks.json określamy następujące opcje

"command": "tsc"
"isShellCommand": true,

Więc visual studio code próbuje uruchomić komendę tsc w wierszu poleceń i nie znajduje tsc. Tak więc, instalacja maszynopisu globalnie przy użyciu npm rozwiązała problem.

 17
Author: khagesh,
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
2015-06-03 12:07:39

Miałem ten sam problem w innym projekcie NA VS Code i zorientowałem się, że VS Code używa innej wersji maszynopisu.

Oto wyniki:

  • "args": ["-p"],
  • "args": ["-p", "."],

Błąd TS5023: Nieznana opcja kompilatora 'p'.

  • "args": ["."],

Błąd TS6053: plik'.nie znaleziono.

Miałem 1.5.3 z npm i używał 1.0.3, to dlatego, że został zainstalowany w systemie Typescript również w Microsoft SDK i był dostępny ze ścieżki .

Rozwiązanie zostało usunięte z global i user PATH this Typescript of Microsoft SDK aby uzyskać dostęp do najnowszego z npm, który może zarządzać -p args.

Spróbuj wykonać tsc z argumentem -v , aby sprawdzić, czy jest to poprawna wersja.

 11
Author: Mirco Tracolli,
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
2015-08-06 21:53:55

Odnośnie kompilacji kodu, zadań.plik json powinien wyglądać tak:

{
    "version": "0.1.0",
    "command": "tsc",    
    "showOutput": "silent",
    "windows": {
        "command": "tsc.exe"
    },
    "args": ["-p", "."],    
    "problemMatcher": "$tsc"
}

Jeśli używasz systemu Windows i masz zainstalowany tsc jako moduł węzła globalnie, Zmień sekcję systemu windows na:

"windows": {
    "command": "tsc",
    "isShellCommand": true
}

Args -p . nakazuje kompilatorowi tsc szukanie tsconfig.plik json w folderze głównym i użyj go do skompilowania projektu.

 8
Author: Dirk Bäumer,
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
2016-11-23 04:07:52

Musisz utworzyć tsconfig.plik json w katalogu głównym Twojego projektu.

Set "module": "commonjs"

Przykład podstawowy:

{
    "compilerOptions": {
        "target": "ES5",
        "module": "commonjs",
        "sourceMap": true
    }
}
 3
Author: Ross Scott,
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
2015-05-05 14:12:09

Miałem ten sam problem i znalazłem rozwiązanie tutaj na stackoverflow, dostarczone przez Steve ' a Fentona: Kod visual studio kompiluje się na save . Jego propozycja jest elegancka, zgodna z obowiązującymi standardami VS Code i działa od razu zgodnie z opisem. Dodaj to do pliku - > Preferencje - > skróty klawiaturowe jako nadpisanie:

[
    {
        "key": "ctrl+s",          
        "command": "workbench.action.tasks.build" 
    }
]
 0
Author: lucobada,
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
2017-05-23 12:01:34