Compile-on-SaveをVS2013で動作させることができません。 VS2013をインストールし、TS 0.9.0.1を再インストールし、「ツール」、「オプション」、TypeScript/Project/Generalの下で、「保存時にコンパイル」オプションの両方をチェックしました。しかし、新しいTSファイルをプロジェクトに追加し、編集して保存すると、変更は関連する.jsファイルに反映されません。
私は何か間違っていますか?他の誰かがこの問題を抱えていますか?
これ 私のために問題を解決しました:
- [ツール]メニューの[オプション]に移動します。
- テキストエディターのオプションを展開する
- TypeScriptのオプションを展開
- プロジェクトのオプションを展開
- 「プロジェクトの一部ではないTypeScriptファイルを自動的にコンパイルする」をチェックします
次のような状況がありました。vs2012および以前のバージョンのTypeScriptを使用してプロジェクトが作成されました。 VS2013にアップグレードし、TypeScriptの最新バージョン(0.9.1.1)と保存時にスクリプトがコンパイルされませんでした。
次に、TypeScriptファイルをプロジェクトから除外し、Add existing fileを使用して再度追加しました。その後、TypeScriptファイルは保存時に正常にコンパイルされます!!
保存時にTypeScript 0.9.5のコンパイルがWeb Essentials 1.85(2月14日)にアップグレードした後、既存のプロジェクトで動作しなくなりました。私は両方とも再利用できませんでしたが、新しいプロジェクトで機能することを確認した後、csprojでこの行を変更しようとしました。
<Project ToolsVersion="4.0" />
に
<Project ToolsVersion="12.0"/>
そして魔法のように、保存時にコンパイルが再び機能し始めました。
次の手順に従ってください:
私もこれを回避するのに苦労してきましたが、私はそれを整理していると思います。混乱の一部は、WebEssentialsと新しいTypeScriptプラグイン統合とのアプローチの違いに起因すると思います。
私はTypeScriptを早期に採用し、2012年にWebEssentialsツールを使用して保存時にコンパイルしました。 .jsファイルと.min.jsファイルを生成するように構成しました。これらは両方ともプロジェクトに自動的に追加されました。
VS 2013にアップグレードするとき、組み込みのTypeScriptサポートから同じ機能を探していましたが、それは存在しません(私が知る限り)。
代わりに、2013年の統合ツールは開発と生産の両方のワークフローをカバーすると考えています。
上記の手順は、リリース時に発生するはずのビルド時コンパイル用にセットアップします。開発中に「保存時にコンパイル」機能はディスク上にファイルを生成しますが、プロジェクトには追加しません。
生成されたファイルは、以前のように実際にプロジェクトの一部である必要はなく、WebEssentialsソリューションよりも優れている理由に気付きました(プレビューウィンドウがないことを除いて!)。
私にとっては、Compile-on-saveが機能していても(Visual Studio 2013)、誰かがWebプロジェクトを実行しようとしても、javascriptファイルは自動的に生成されません。私のプロジェクトでは、*.js
ファイルと*.js.map
ファイルを含めて、*.ts
ファイルを変更したときにIISが新しいバージョンを使用しないようにしました。しかし、これらのファイルはソース管理に含まれません。
このようにして、csproj
プロジェクトファイルの最後に次の行を追加しました。
<Target Name="AfterBuild">
<Exec Command="tsc.exe --sourcemap _core.ts" WorkingDirectory="$(MSBuildProjectDirectory)\js" />
</Target>
ここで、_core.ts
はjs
フォルダー内のファイルで、確かに、最初のヘッダーを介してすべてのファイルを直接または間接的に参照します。
/// <reference path="_dependent.ts" />
...
tsc.exe
がすべての依存ファイルも処理するようにします。
上記の手順に加えて、保存時のコンパイルがまだ機能していない場合は、プロジェクトをスタートアッププロジェクトとしてマークします(VS 2013ソリューションエクスプローラーで、右クリックして、スタートアッププロジェクトとして設定)。
このソリューションはnicholasjgreenによってCodeplexで発見され、 http://TypeScript.codeplex.com/wikipage?title=Compile-on-Save のコメントに投稿されています。
TypeScriptファイルの最後に関数を追加することで、この問題を解決しました。 「新しい」機能がページの上部(他の機能の前)に入力されたときは機能しませんでしたが、最後の機能の下に追加すると機能しました。たった3時間かかりました!
この機能は、次の方法を使用して見つけるのが少し簡単です。 (VS2015)
ドラッグアンドドロップを使用してTypeScriptファイルを追加しましたか?その後、ファイルのビルドアクションの値が間違っている可能性があります。ファイルのプロパティウィンドウ(F4またはAlt + Enter)を使用して、ビルドアクションを確認します...