web-dev-qa-db-ja.com

Visual Studio 2013で保存時にタイプスクリプトをコンパイルしますか?

Compile-on-SaveをVS2013で動作させることができません。 VS2013をインストールし、TS 0.9.0.1を再インストールし、「ツール」、「オプション」、TypeScript/Project/Generalの下で、「保存時にコンパイル」オプションの両方をチェックしました。しかし、新しいTSファイルをプロジェクトに追加し、編集して保存すると、変更は関連する.jsファイルに反映されません。

私は何か間違っていますか?他の誰かがこの問題を抱えていますか?

32
Ken Smith

これ 私のために問題を解決しました:

  1. [ツール]メニューの[オプション]に移動します。
  2. テキストエディターのオプションを展開する
  3. TypeScriptのオプションを展開
  4. プロジェクトのオプションを展開
  5. 「プロジェクトの一部ではないTypeScriptファイルを自動的にコンパイルする」をチェックします
52
Daniel

次のような状況がありました。vs2012および以前のバージョンのTypeScriptを使用してプロジェクトが作成されました。 VS2013にアップグレードし、TypeScriptの最新バージョン(0.9.1.1)と保存時にスクリプトがコンパイルされませんでした。

次に、TypeScriptファイルをプロジェクトから除外し、Add existing fileを使用して再度追加しました。その後、TypeScriptファイルは保存時に正常にコンパイルされます!!

16
rekna

保存時にTypeScript 0.9.5のコンパイルがWeb Essentials 1.85(2月14日)にアップグレードした後、既存のプロジェクトで動作しなくなりました。私は両方とも再利用できませんでしたが、新しいプロジェクトで機能することを確認した後、csprojでこの行を変更しようとしました。

<Project ToolsVersion="4.0" />

<Project ToolsVersion="12.0"/>

そして魔法のように、保存時にコンパイルが再び機能し始めました。

7
cirrus

次の手順に従ってください:

保存時にコンパイル

私もこれを回避するのに苦労してきましたが、私はそれを整理していると思います。混乱の一部は、WebEssentialsと新しいTypeScriptプラグイン統合とのアプローチの違いに起因すると思います。

私はTypeScriptを早期に採用し、2012年にWebEssentialsツールを使用して保存時にコンパイルしました。 .jsファイルと.min.jsファイルを生成するように構成しました。これらは両方ともプロジェクトに自動的に追加されました。

VS 2013にアップグレードするとき、組み込みのTypeScriptサポートから同じ機能を探していましたが、それは存在しません(私が知る限り)。

代わりに、2013年の統合ツールは開発と生産の両方のワークフローをカバーすると考えています。

上記の手順は、リリース時に発生するはずのビルド時コンパイル用にセットアップします。開発中に「保存時にコンパイル」機能はディスク上にファイルを生成しますが、プロジェクトには追加しません。

生成されたファイルは、以前のように実際にプロジェクトの一部である必要はなく、WebEssentialsソリューションよりも優れている理由に気付きました(プレビューウィンドウがないことを除いて!)。

4
Brett Postin

私にとっては、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.tsjsフォルダー内のファイルで、確かに、最初のヘッダーを介してすべてのファイルを直接または間接的に参照します。

/// <reference path="_dependent.ts" />
...

tsc.exeがすべての依存ファイルも処理するようにします。

2
Mikaël Mayer

上記の手順に加えて、保存時のコンパイルがまだ機能していない場合は、プロジェクトをスタートアッププロジェクトとしてマークします(VS 2013ソリューションエクスプローラーで、右クリックして、スタートアッププロジェクトとして設定)。

このソリューションはnicholasjgreenによってCodeplexで発見され、 http://TypeScript.codeplex.com/wikipage?title=Compile-on-Save のコメントに投稿されています。

1
Eduardo Lucas

TypeScriptファイルの最後に関数を追加することで、この問題を解決しました。 「新しい」機能がページの上部(他の機能の前)に入力されたときは機能しませんでしたが、最後の機能の下に追加すると機能しました。たった3時間かかりました!

1
Raymond Starkey

この機能は、次の方法を使用して見つけるのが少し簡単です。 (VS2015)

  1. [ツール]> [オプション]に移動します。
  2. "すべての設定を表示"が選択されていることを確認してください。これは、ウィンドウの下部にあるチェックボックスです。
  3. 検索バーに「TypeScript」を入力して、Enterキーを押します。
  4. これでリストがフィルタリングされます。設定に移動します:テキストエディター> TypeScript>プロジェクト>全般
  5. プロジェクトの一部ではないTypeScriptファイルを自動的にコンパイルする」を選択します。 OKを押します。
0
prolink007

ドラッグアンドドロップを使用してTypeScriptファイルを追加しましたか?その後、ファイルのビルドアクションの値が間違っている可能性があります。ファイルのプロパティウィンドウ(F4またはAlt + Enter)を使用して、ビルドアクションを確認します...

0
A. K-R