Cómo agregar tsconfig a la biblioteca de clases de Razor en el paquete NuGet.
He creado una biblioteca de clase Razor y he añadido:
- Typescript/tsconfig.json
- Typescript/scripts.ts
- PackageReference a
Microsoft.TypeScript.MSBuild
Cuando referencio el proyecto en mi aplicación utilizando ProjectReference, funciona correctamente.
Cuando lo referencio utilizando PackageReference, obtengo un error de compilación extraño:
tsc : error TS18003: Build:No se encontraron entradas en el archivo de configuración ‘C:/Users/danie/.nuget/packages/mypackage/0.5.0/contentFiles/any/net6.0/Typescript/tsconfig.json’. Las rutas ‘include’ especificadas fueron ‘[\”*/\”]’ y las rutas ‘exclude’ fueron ‘[\”../wwwroot\”]’. [C:\Projects\app\App.csproj]
- ¿Cómo puedo incluir correctamente TypeScript en la biblioteca de clase Razor para poder crear un paquete de NuGet válido a partir de él?
- ¿Por qué el evento
dotnet build app.csproj
intenta compilar TypeScript que se encuentra en el paquete de NuGet?
Este es mi archivo 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"></supportedplatform>
</itemgroup>
<itemgroup>
<packagereference include="Microsoft.SourceLink.GitHub" version="1.0.0" privateassets="All"></packagereference>
<packagereference include="Microsoft.AspNetCore.Components.Web" version="6.0.0"></packagereference>
<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\"></folder>
</itemgroup>
</project>
davy.ai
Microsoft.TypeScript.MSBuild
.tsconfig.json
con la configuración necesaria para especificar los archivos de entrada, archivos de salida y opciones del compilador.TypeScriptCompile
al archivo del proyecto e incluye los archivos de TypeScript que deben ser compilados.Aquí tienes un ejemplo de cómo podría verse tu archivo de proyecto:
dotnet build
está intentando compilar los archivos de TypeScript ubicados en el paquete NuGet porque se incluyen como archivos de contenido del paquete. Esto sucede porquedotnet build
incluye todos los archivos de contenido en el proceso de compilación. Para evitar esto, puedes excluir los archivos de TypeScript de la compilación utilizando un elementoExcludeAssets
en tu referencia de paquete:Esto evitará que los archivos de TypeScript se incluyan en la compilación, al tiempo que permitirá que se incluyan en el paquete NuGet.