托管在Visual Studio Core 2.2 Web Api项目中的Angular-cli项目无法随机编译

时间:2018-12-14 11:49:52

标签: visual-studio asp.net-core angular-cli

我有一个基于API模板的Visual Studio 2017 ASP.NET Core 2.2项目。 在Api项目中,我创建了一个新的基于angular-cli的Web应用程序。

Visual Studio Build无法随机编译。构建失败。然后,我再次进行编译而未进行任何更改,构建成功完成。如果我再次构建,它现在将以一致的方式编译但带有警告,并且突然间它将再次以相同的错误开始失败并重复。

当它失败时,我会收到24个与此类似的构建错误。它将文件夹打包在nodes_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下的文件进行任何操作的任何事情。 MsBuild应该完全忽略angular-cli应用,但显然不是。

在“项目属性”->“打字稿生成”下,我选择了“使用最新可用”,并取消了“启用”复选框中的复选标记。

这是我的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>

1 个答案:

答案 0 :(得分:0)

通过升级到最新版本解决了问题

npm install @angular/flex-layout@latest