Visual Studio 2015にアップグレードした後、「保存時にコンパイル」機能が動作しません。プロジェクトで.ts
ファイルに変更を加えて保存すると、IDEはOutput(s) generated successfully
と表示されますが、生成された.js
ファイルは変更されません。
私が試したものは次のとおりです。
<Project>
のルート.csproj
要素に次を追加します。
<PropertyGroup>
<TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
</PropertyGroup>
Tools -> Options -> TypeScript -> Project
の[プロジェクトの一部ではないTypeScriptファイルを自動的にコンパイルする]オプションをオンまたはオフにします。
私のプロジェクトのTypeScriptビルドプロパティで「保存時にコンパイル」がチェックされていることを確認するためのダブルチェック:
私は何が欠けていますか?
副次的な注意事項として、TypeScriptのコンパイル手順は、通常のビルドによってトリガーされたときに期待どおりに機能します。
この問題は、TypeScript Language Services
拡張機能の最新の更新で解決されたようです。
この回答を参照 この更新プログラムを適用する方法の手順について。
私にとっては、tsconfig.json
のこのオプションでした:
"compileOnSave": true,
"compilerOptions": { ... },
この変更を有効にするには、Visual Studioを再起動します。
今日、この問題に出くわしました。新しい"watch":true
コンパイラオプションを使用して修正しました。これは、最新のTypeScriptバージョンのJSONでも利用できます。
{
"compilerOptions": {
"watch": true
}
}
それを行った後、出力ウィンドウに表示される次のエラーに関連する別の問題を解決する必要がありました。
Object doesn't support property or method 'watchFile'
TypeScript(1.0.x)の古いバージョンを使用していることが判明しましたが、Visual Studio 2015更新1(1.7)。この問題が発生した場合は、コマンドプロンプトからtsc -v
と入力することにより、TSCバージョンを簡単に確認できます。
1.0.x
または1.7未満の場合は、おそらくPATH環境変数に古い参照がいくつかあるためです。 Type SDKパッケージが更新されたときにインストールするためにVisual Studioで使用されるMicrosoft SDKフォルダー内を確認して、1.7以降がインストールされていることを確認してください。
C:\Program Files (x86)\Microsoft SDKs\TypeScript
そうでない場合は、それに応じて更新します。 OpenCPanel>System>Advanced>環境変数、システム変数を選択して、編集; TypeScriptフォルダーへの参照を探してリストを参照し、TypeScriptの最新のインストールバージョン(1.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 Both Basechat。
私の場合、VS 2012と共にVisual Studio Community 2015をインストールしました。2012年にはType Essentials for Web Essentialsを使用していましたが、2015年と競合するようです。
2012年にWeb Essentialsをアンインストールすると、問題が修正されました。
TypeScript 2では、tsconfigから「outDir」を削除する必要があります。 Visual Studioでのバグを修正します。
"compileOnSave": true,
は機能していませんでした。最後に、拡張している別の"compileOnSave": true,
ファイルで定義されている場合、Visual Studioは.json
値を尊重しないことがわかりました。動作するためにはルートになければなりません。
プロジェクトのプロパティ->「TypeScript Build」で、「エラーが報告された場合に出力を出力しない」のチェックを外すこともできます。チェックすると、保存時にエラーが発生するかどうかにかかわらず、トランスコンパイルが無効になります。
terminal/cmd
でC:\ file.tsなどのファイルを見つけて入力します
tsc file.ts -w // watches for file changes and converts on save
ここでもまったく同じ問題です。 Visual Studio 2015 update 3およびTypeScript 2.9.2.0を使用しています。 tools/options/projectsおよびsolutions/external web toolsで、$(PATH)を2番目の位置にアップグレードしました。これらすべての構成では、compileOnSave:trueは機能しません。回避策は、コマンドラインを開き、ng build --watch
をサイドで実行し、ノードに自動コンパイルを処理させることです。