33

今日 VS2017 にアップグレードしましたが、Web アプリ プロジェクトで何かを変更するたびに、ビルドによってすべての JavaScript が再度ビルドされることがわかりました (クライアントに webpack を使用しています)。クールですが、時間がかかるので、javascript のビルドを停止するように構成できれば幸いです (変更されたときに自分でビルドします)。

4

7 に答える 7

69

簡単な答え

csproj ファイルで、次の行を既存の PropertyGroup ブロックに追加します。

<PropertyGroup>
     <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
</PropertyGroup>

.tsまたはファイルをプロジェクトに追加.tsxするとプロジェクト ファイルが変更される場合は、次の修正プログラムを適用する必要がある場合があります。詳細については、バグ レポートを参照してください。

 <ItemGroup>
      <None Remove="**/*.ts;**/*.tsx" />
      <Content Remove="**/*.ts;**/*.tsx" />
      <TypeScriptCompile Include="**/*.ts;**/*.tsx" />
 </ItemGroup>

プロジェクト ルートにファイルを追加tsconfig.jsonし、次の設定が設定されていることを確認します。

"compileOnSave": false,

最後に、Visual Studio を再起動します


詳細

[ProjectName].csproj.nuget.g.targetsNuget は、プロジェクトのディレクトリに呼び出される生成されたターゲット ファイルを作成しobjます。このターゲット ファイルはインポートMicrosoft.NET.Sdk.Web.ProjectSystem.targetsされ、次にインポートされMicrosoft.TypeScript.targetsます。

ファイルのMicrosoft.TypeScript.targets次の行には、このプロパティが true に設定されている場合、TypeScript コンパイル タスクが何もしないことを知らせるコメントがあります。

<!-- Makes the TypeScript compilation task a no-op -->
<TypeScriptCompileBlocked Condition="'$(TypeScriptCompileBlocked)' == ''">false</TypeScriptCompileBlocked>
于 2016-11-20T19:31:14.527 に答える
2

私は同じ問題を抱えていました.Webpackは、Visual Studioがプロジェクトを再構築するたびにTypescriptファイルを再構築していました.

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

私のプロジェクトファイルで、そして

"compileOnSave": false,
  "buildOnSave": false

私の tsconfig.json ファイルで。

それは、NPM Task Runner VS 拡張機能 ( https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner ) がインストールされていたためであり、Task Runner Explorer ではビルド タスクが「Before Build」にバインドされていたためであることが判明しました。 ' イベント。この拡張機能は必要なかったので、アンインストールしました。

注: VS ビルドで再構築するのに Webpack は必要ありませんでした。これは、この拡張機能を使用して、ファイルを監視し、変更を加えたときにとにかく再構築していたためです

于 2018-05-11T15:52:04.860 に答える