TypeScript funkcja "Kompiluj przy zapisie" nie działa w Visual Studio 2015

Funkcja "Kompiluj przy zapisywaniu" nie działa dla mnie po aktualizacji do Visual Studio 2015. Kiedy zmieniam plik .ts w moim projekcie i zapisuję, pasek stanu na dole IDE mówi Output(s) generated successfully, ale wygenerowany plik .js się nie zmienia.

Oto co próbowałem:

  • Dodanie następującego elementu root <Project> w moim .csproj:

    <PropertyGroup>
        <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
    </PropertyGroup>
    
  • Sprawdzanie i odznaczanie "automatycznie kompilowanych plików maszynopisu, które nie są częścią projekt " opcja w Tools -> Options -> TypeScript -> Project:

    Tutaj wpisz opis obrazka

  • Podwójne sprawdzanie, aby upewnić się, że "Compile on save" jest zaznaczone we właściwościach budowania maszynopisu mojego projektu:

    Tutaj wpisz opis obrazka

Co mi umyka?

Na marginesie, etap kompilacji maszynopisu działa zgodnie z oczekiwaniami, gdy jest uruchamiany przez regularną kompilację.

Author: Nathan Friend, 2015-07-31

10 answers

Dla mnie była to opcja w tsconfig.json:

"compileOnSave": true,
"compilerOptions": { ... },

Uruchom ponownie Visual Studio, aby zmiana weszła w życie.

 124
Author: Miłosz Wierzbicki,
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-07-04 14:49:39

Natknąłem się dziś na ten problem: naprawiłem go używając nowej opcji kompilatora "watch":true, dostępnej również przez JSON w najnowszych wersjach maszynopisu:

{
  "compilerOptions": {
    "watch": true
  }
}

Po tym, musiałem rozwiązać kolejny problem związany z następującym błędem, który pojawił się w oknie wyjściowym:

Object doesn't support property or method 'watchFile'

Okazało się, że mój system używa przestarzałej wersji TypeScript (1.0.x), mimo że byłem pewien, że mam nowszą wersję, która pojawiła się wraz z aktualizacją Visual Studio 2015 1 (1.7). Jeśli napotkasz ten problem, możesz łatwo sprawdzić wersję tsc, wpisując tsc -v z wiersza polecenia.

Jeśli jest napisane 1.0.x lub cokolwiek innego C:\Program Files (x86)\Microsoft SDKs\TypeScript

Jeśli nie, zaktualizuj odpowiednio. Otwórz CPanel > System > zaawansowane > zmienne środowiskowe , wybierz Zmienne systemowe i kliknij Edytuj ; Przeglądaj listę szukając jakiegokolwiek odniesienia do folderu maszynopisu, Zmień jedną z nich, aby wskazywała na najnowszą zainstalowaną wersję maszynopisu (1.7 lub powyżej) i usuń inne duperele. Zobacz także zrzut ekranu poniżej:

Tutaj wpisz opis obrazka

Aby uzyskać dodatkowe informacje, przeczytaj to post .

 30
Author: Darkseal,
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-02-07 20:06:38

Ten problem został rozwiązany przy ostatniej aktualizacji rozszerzenia TypeScript Language Services.

Zobacz tę odpowiedź , aby dowiedzieć się, jak zastosować tę aktualizację.

 5
Author: Nathan Friend,
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 10:31:09

Rozwiązanie:

Dla mnie i jestem całkiem pewien, że tak jest również w przypadku innych, było to spowodowane błędem w tsconfig.json.

Musisz dodać "compileOnSave": true. Ale w globalnej sekcji nie wewnątrz compilerOptions.

Wrong:
{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "compileOnSave": true

  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

Correct:
{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5"

  },
"compileOnSave": true,
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

Pozdrawiam,

Anders Both Basechat.
 3
Author: Anders Both,
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-06-01 11:39:55

W moim przypadku zainstalowałem Visual Studio Community 2015 wraz z side VS 2012. Używałem Web Essentials dla maszynopisu w 2012 roku, co wydawało się sprzeczne z 2015.

Odinstalowanie Web Essentials w 2012 naprawiło problem dla mnie.

 2
Author: Christopher Thomas,
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-01-18 09:26:07

Z typescript 2 musisz usunąć "outDir": z twojego tsconfig. Napraw mi błąd w visual studio.

 2
Author: Yvan,
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-10-20 08:49:58

W properties projektu - > "TypeScript Build", możesz również po prostu odznaczyć opcję " Nie emituj wyjść, jeśli zostaną zgłoszone błędy."Po sprawdzeniu wydaje się dezaktywować transpilowanie przy zapisie, w przypadku wystąpienia błędu lub nie.

 1
Author: Dominic Williams,
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-08-02 04:42:12

"compileOnSave": true, nie działało na mnie. W końcu odkryłem, że Visual Studio nie honoruje wartości "compileOnSave": true,, jeśli jest zdefiniowana w innym pliku .json, który rozszerzasz. Musi być w korzeniu, żeby zadziałało.

 1
Author: Daryl,
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-02-06 22:16:06

Zlokalizuj plik tzn. C:\file.ts w Twoim terminal/cmd i wpisz

tsc file.ts -w // watches for file changes and converts on save
 1
Author: WasiF,
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
2018-07-04 07:44:17

Dokładnie ten sam problem. Używam Visual Studio 2015 update 3 i TypeScript 2.9.2.0. W tools / options / projects and solutions / external web tools uaktualniłem $(PATH) na drugą pozycję. Przy tych wszystkich konfiguracjach, compileOnSave: true nie działa dla mnie. Rozwiązanie obejścia problemu polega na otwarciu linii poleceń, uruchomieniu ng build --watch z boku i pozwól node zająć się automatyczną kompilacją

 0
Author: Yue Yin,
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
2018-07-03 16:21:54