如何将tsconfig添加到剃刀类库nuget包中



我已经创建了剃刀类库并添加了

  • Typescript/tsconfig.json
  • Typescript/scripts.ts
  • Microsoft.TypeScript.MSBuild的程序包参考

当我在应用程序中使用ProjectReference引用项目时,它运行良好。

当我使用PackageReference引用它时,我会得到一个奇怪的构建错误:

tsc:error TS18003:内部版本:在配置文件"C:\Users/danie/.nuget/packages/mypackage/0.5.0/contentFiles/any/net6.0/Typescript/tsconfig.json"中找不到任何输入。指定的"包含"路径为"[quot;**/*quot;]","排除"路径为为"[quot;../wwwroot"].C:\Projects\app.csproj]

  1. 如何正确地将typescript包含在剃刀类库中,以便从中创建有效的nuget包?

  2. 为什么试图构建typescript的dotnet build app.csproj事件位于nuget包中?


这是我的MyPackage.csproj

<Project Sdk="Microsoft.NET.Sdk.Razor">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework
    <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
    <PackageId>MyPackage</PackageId>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
  </PropertyGroup>
  
  <ItemGroup>
    <SupportedPlatform Include="browser" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="6.0.0" />
    <PackageReference Include="Microsoft.TypeScript.MSBuild" Version="4.5.3">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>
  <ItemGroup>
    <Folder Include="wwwroot" />
  </ItemGroup>
</Project>

我通过将以下块添加到剃刀类库的csproj文件中来实现这一点。

<Target Name="RemoveTSConfigFileFromPackage" AfterTargets="CompileTypeScriptWithTSConfig">
    <ItemGroup>
        <Content Remove="**tsconfig.json" />
    </ItemGroup>
</Target>

这将在构建nuget包时从该包中删除tsconfig.json,并避免使用项目中的构建错误。

有关更多信息,请参阅此线程:https://github.com/dotnet/aspnetcore/issues/2166

相关内容

  • 没有找到相关文章

最新更新