Подтвердить что ты не робот

Как предотвратить визуальную студию 2017 от сборки javascript?

Я обновил сегодня до VS2017, и я видел, что каждый раз, когда я что-то меняю в своем проекте для веб-приложений, сборка снова создает все мои javascript (я использую webpack для клиента). Это классно, но это занимает много времени, поэтому я буду счастлив настроить его, чтобы остановить создание javascript (и сам создам его, когда он изменится).

4b9b3361

Ответ 1

Простой ответ

В вашем файле csproj добавьте следующую строку в существующий блок PropertyGroup:

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

Убедитесь, что вы включаете ваши файлы машинописного текста в качестве содержимого

<ItemGroup>
    <Content Include="**\*.ts" Exclude="$(GlobalExclude)" />
</ItemGroup>

Добавьте файл tsconfig.json в tsconfig.json каталог вашего проекта и убедитесь, что установлены следующие параметры:

"compileOnSave": false,

Наконец, перезапустите Visual Studio


подробности

Nuget создает сгенерированный целевой файл с именем [ProjectName].csproj.nuget.g.targets в каталоге 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>

Ответ 2

Я использую webpack ts-loader для компиляции и компоновки файлов TypeScript. Поэтому мне больше не нужна автоматическая компиляция, выполняемая Visual Studio для каждой сборки. В Visual Studio 2017 я просто прокомментировал следующую строку из tsconfig.json, чтобы остановить автоматическую компиляцию:

"outDir": "./wwwroot/build/",

Ответ 3

У меня была та же проблема - Webpack перестраивал мои файлы Typescript каждый раз, когда Visual Studio перестраивал проект, несмотря на то, что

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

в моем файле proj, и

"compileOnSave": false,
  "buildOnSave": false

в моем файле tsconfig.json.

Оказывается, это потому, что у меня было установлено расширение NPM Task Runner VS (https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner), а в обозревателе задач это связывало задачу сборки с "Перед сборкой". ' событие. Мне не нужно это расширение, поэтому я просто удалил его.

Примечание. Мне не нужно было перестраивать Webpack для сборки VS, потому что он следил за моими файлами и перестраивался в любом случае по мере внесения изменений через это расширение: https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebPackTaskRunner

Ответ 4

Установка TypeScriptCompileBlocked в true было недостаточно для меня. Что работало, так это переход к свойствам проекта - есть вкладка TypeScript Build, где вы можете настроить компиляцию TS, включая опцию Compile On Save:

enter image description here

Это приводит к следующему добавлению в файл csproj:

<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptJSXEmit>None</TypeScriptJSXEmit>
<TypeScriptModuleKind>ES6</TypeScriptModuleKind>
<TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
<TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
<TypeScriptRemoveComments>False</TypeScriptRemoveComments>
<TypeScriptOutFile />
<TypeScriptOutDir />
<TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
<TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
<TypeScriptSourceMap>True</TypeScriptSourceMap>
<TypeScriptMapRoot />
<TypeScriptSourceRoot />

Ответ 5

Выполнена следующая настройка вместе с TypeScriptCompileBlocked в true.

Установите для условия ниже ложное в .csproj файле приложения.