У меня есть проект Visual Studio 2017 ASP.NET Core 2.2, основанный на шаблоне API.Внутри проекта Api я создал новое веб-приложение на основе angular-cli.
Visual Studio Build не может компилироваться случайным образом.Сборка не удалась.Затем я снова компилирую, ничего не меняя, и сборка завершается успешно.Если я соберу снова, он теперь будет компилироваться последовательно, но с предупреждениями, и внезапно он снова начнет отказывать с теми же ошибками и повторяться.
Когда он терпит неудачу, я получаю 24 ошибки сборки, подобные этой.Это папка пакета под node_modules.
TS2420 Build:Class 'MockMediaQueryList' incorrectly implements interface 'MediaQueryList'. C:\somePath\node_modules\@angular\flex-layout\core\typings\match-media\mock\mock-match-media.d.ts
Когда он компилируется, у меня есть 8 предупреждений, подобных этому:
C:\somePath\node_modules\@angular\flex-layout\core\typings\match-media\mock\mock-match-media.d.ts(62,22): error TS2420: Build:Class 'MockMediaQueryList' incorrectly implements interface 'MediaQueryList'.
Я не знаю ничего, что делает какие-либо операции над файлами в node_modules во время компиляции.Приложение angular-cli должно полностью игнорироваться MsBuild, но это явно не так.
В разделе «Свойства проекта» -> «Сборка Typescript» я выбрал «Использовать последние доступные» и снял флажок вФлажок «Включить».
Это мой файл project.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<IsServiceFabricServiceProject>True</IsServiceFabricServiceProject>
<ServerGarbageCollection>True</ServerGarbageCollection>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
<TargetLatestRuntimePatch>False</TargetLatestRuntimePatch>
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.ServiceFabric.AspNetCore.Kestrel" Version="3.3.617" />
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES2015</TypeScriptTarget>
<TypeScriptJSXEmit>None</TypeScriptJSXEmit>
<TypeScriptModuleKind>ES6</TypeScriptModuleKind>
<TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
<TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
<TypeScriptRemoveComments>True</TypeScriptRemoveComments>
<TypeScriptOutFile />
<TypeScriptOutDir />
<TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
<TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
<TypeScriptSourceMap>True</TypeScriptSourceMap>
<TypeScriptMapRoot />
<TypeScriptSourceRoot />
</PropertyGroup>
</Project>