TypeScriptの「保存時にコンパイル」機能がVisualStudio2015で機能しない


83

Visual Studio 2015にアップグレードした後、「保存時にコンパイル」機能が機能しません。.tsプロジェクト内のファイルに変更を加えて保存すると、IDEの下部にあるステータスバーOutput(s) generated successfullyにが表示され.jsますが、生成されたファイルは機能しません。変わらない。

これが私が試したことです:

  • <Project>私のルート要素に以下を追加します.csproj

    <PropertyGroup>
        <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
    </PropertyGroup>
    
  • 「プロジェクトの一部ではないTypeScriptファイルを自動的にコンパイルする」オプションのチェックとチェックを外しますTools -> Options -> TypeScript -> Project

    ここに画像の説明を入力してください

  • プロジェクトのTypeScriptビルドプロパティで「保存時にコンパイル」がチェックされていることを確認するためのダブルチェック:

    ここに画像の説明を入力してください

何が足りないのですか?

補足として、TypeScriptコンパイルステップは、通常のビルドによってトリガーされたときに期待どおりに機能します。


JSファイルが実際に更新されていないことを確認してください。しばらくの間、VS2013で「JSプレビュー」が更新されていないという問題が発生しましたが、JSファイルは実際に更新されていました。手動で開いて、コードが更新されたかどうかを確認します。この原因は不明でしたが、解決策はVSをシャットダウンして再度開くことでした。VS2015でTSファイルを作成したことはまだありません。
ジェイソンH

1
彼らはRTMのためにそれを壊しました。この質問を参照してください stackoverflow.com/questions/31559653/...
Simon_Weaver

1
私はあなたが管理者としてビジュアルスタジオを運営しているときに働きます!
alisabzevari 2015

@alisabzevari提案をありがとうございますが、管理者として実行してもこの問題は修正されません。
ネイサンフレンド

回答:


138

私にとって、それはこのオプションでしたtsconfig.json

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

この変更を有効にするには、VisualStudioを再起動します。


angle2を使用して、rc1の他の多くのものの中で私のタイプスクリプトを更新し、最終的にこれが私の問題であることがわかるまで、当然すべてが壊れました。1.8.10にアップデートするまでは必要ありませんでした。
ジェームズ

4
はい、tsconfig.jsonにオプションを追加し、プロジェクトがVSソリューションでホストされている場合は、プロジェクトをリロードします。次に、tsは保存時にjsにコンパイルされます。
ZZZ 2016年

1
追加"watch": truecompilerOptions活字体1.8.29.0にアップデート2のVisual Studio 2015上で私のために働いた
ヴァヒド・アミリ

1
TypeScript 2の頃のある時点で、Visual Studioは、これらの設定を.csprojファイルに保持することから、を使用することだけに移行しましたtsconfig.json。プロジェクトのプロパティ活字ページが無効になって、それ可能性が高い手段ではない場合は、Visual Studio用活字体ツールの古いバージョンがインストールされている、あなたがインストールする必要がありmicrosoft.com/en-us/download/details.aspx?id=48593
cchamberlain

32

今日、この問題に遭遇しました。新しい"watch":trueコンパイラオプションを使用して修正しました。これは、最新のTypeScriptバージョンではJSONからも利用できます。

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

その後、出力ウィンドウに表示される次のエラーに関連する別の問題を解決する必要がありました。

Object doesn't support property or method 'watchFile'

Visual Studio 2015 Update 1(1.7)に付属している新しいバージョンがあると確信していたにもかかわらず、私のシステムは古いバージョンのTypeScript(1.0.x)を使用していたことが判明しました。この問題が発生した場合は、コマンドプロンプトから入力することで、tscのバージョンを簡単に確認できます。tsc -v

それが1.0.x1.7未満と表示されている場合は、PATH環境変数に古い参照があることが原因である可能性があります。Microsoft SDKフォルダー内をチェックして、1.7以降がインストールされていることを確認します。MicrosoftSDKフォルダーは、更新時にTypeScriptパッケージをインストールするためにVisualStudioによって使用されます。

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

そうでない場合は、それに応じて更新します。CPanel >システム>詳細>環境変数を開き、システム変数を選択して編集をクリックします。リストを参照してTypeScriptフォルダーへの参照を探し、そのうちの1つを変更して、TypeScriptの最新のインストールバージョン(1.7またはそれ以上)を指すようにし、他の重複を削除します。以下のスクリーンショットも参照してください。

ここに画像の説明を入力してください

詳細については、私のブログのこの投稿を読んでください。


1
win10の私にとって、リスト内の名前は「パス」であり、システム変数ではありませんでした。それを選択し(その値はセミコロンで連結された長い文字列です)、[編集]をクリックすると、この回答に示されているモーダルウィンドウが表示されます。私の解決策は、compileroptions> watch> trueを追加することではなく、compileOnSave> trueを設定することでした(compileroptionsから1ステップ上)
BobbyTables 2016

1
私の場合、このオプションを設定すると、ビルドエラーJsErrorScriptException(0x30001)が発生しました。検索した後、私はこの問題github.com/Microsoft/TypeScript/issues/7362に出くわしました。MiłoszWierzbickiのソリューション(「compileOnSave」の設定)は私には機能しますが、VSを再起動した後でのみ機能します。
fikkatra 2016

私も同じ問題を抱えていました。Uと@zeddは私に多くの時間を節約しました。この投稿も役に立ちます:ryadel.com/en/…
Dudi 2016

7

解決:

私にとって、そしてこれは他の人にも当てはまると確信しています。これはtsconfig.jsonの間違いが原因でした。

「compileOnSave」を追加する必要があります:true。ただし、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"
  ]
}

宜しくお願いします、

Anders BothBasechat。



2

私の場合、VS2012と一緒にVisualStudio Community 2015をインストールしました。2012年にタイプスクリプトにWebEssentialsを使用していましたが、2015と競合しているように見えました。

2012年にWebEssentialsをアンインストールすると、問題が修正されました。


私はVSCommunityを使用していて、WebEssentialsをアンインストールすることでうまくいきました。おかげで、賛成!
レイ

2

typescript 2では、tsconfigから「outDir」を削除する必要があります。VisualStudioでバグを修正してください。


outdir tsconfigはどこにありますか?Thx
ジェイ

@jay typescriptの構成ファイルtsconfig.jsonにオプションが表示されませんか?
yvan 2017年

1

プロジェクトのプロパティ->「TypeScriptビルド」で、「エラーが報告された場合に出力を出力しない」のチェックを外すこともできます。チェックすると、エラーがあるかどうかに関係なく、保存時にトランスパイルが無効になっているようです。


1

"compileOnSave": true,私のために働いていませんでした。ついに、拡張している"compileOnSave": true,別の.jsonファイルで定義されている場合、VisualStudioは値を尊重しないことがわかりました。それが機能するためには、ルートにある必要があります。


1

ファイル、つまりC:\ file.tsを見つけて、次のようterminal/cmdに入力します。

tsc file.ts -w // watches for file changes and converts on save

1

プロジェクトで構成されているTypeScriptバージョンがインストールされているかどうかを確認します。どういうわけか、TypeScript 3.7がインストールされていないという警告は表示されませんでしたが、保存時のコンパイル機能がサイレントに機能しなくなりました。

TypeScript 3.7をインストールすると、再び機能していました。


0

ここでもまったく同じ問題があります。Visual Studio 2015 update3とTypeScript2.9.2.0を使用しています。ツール/オプション/プロジェクトとソリューション/外部Webツールで、$(PATH)を2番目の位置にアップグレードしました。これらすべての構成では、compileOnSave:trueは機能しません。回避策は、コマンドラインを開きng build --watch、サイドで実行して、ノードに自動コンパイルを処理させることです。


0

これが誰かを助けるかどうかわからない。

コンパイルに問題があったのですが、保存時にコンパイルしていました。すべてのファイルを表示するようにソリューションエクスプローラーツールバーを切り替えていませんでした。

ファイルはそこにあり、プロジェクトに追加されるのを待ち焦がれていました。

ここに画像の説明を入力してください


0

Visual Studio 2019で同様の問題が発生しましたが、同じではありません

  • 私のプロジェクトはTypeScript2.9を使用するように設定されました
  • TypeScript 3.8をインストールしましたが、コードはコンパイルされましたが、保存時にコンパイルされませんでした

古いバージョンのTypeScript2.9をインストールし、VSを再起動すると、突然起動しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.