engine-bay/admin-portal

View on GitHub
EngineBay.AdminPortal/EngineBay.AdminPortal.csproj

Summary

Maintainability
Test Coverage
<Project Sdk="Microsoft.NET.Sdk.Web">

    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <RootNamespace>EngineBay.AdminPortal</RootNamespace>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <PackageId>EngineBay.AdminPortal</PackageId>
        <Version>0.0.0</Version>
        <Authors>EngineBay</Authors>
        <Company>EngineBay</Company>
        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
        <PackageReadmeFile>README.md</PackageReadmeFile>
        <PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
        <PackageProjectUrl>https://github.com/engine-bay/admin-portal</PackageProjectUrl>
        <RepositoryUrl>https://github.com/engine-bay/admin-portal</RepositoryUrl>
        <RepositoryType>git</RepositoryType>
        <TargetType>library</TargetType>
        <IsPackable>true</IsPackable>
        <OutputType>Library</OutputType>
        <SpaRoot>AdminPortal\</SpaRoot>
        <DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
        <SpaProxyServerUrl>https://localhost:8080</SpaProxyServerUrl>
        <SpaProxyLaunchCommand>npm run dev</SpaProxyLaunchCommand>
        <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
        <TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
    </PropertyGroup>

    <PropertyGroup>
        <AnalysisMode>AllEnabledByDefault</AnalysisMode>
        <GenerateDocumentationFile>true</GenerateDocumentationFile>
        <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
        <IsTrimmable>true</IsTrimmable>
        <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
    </PropertyGroup>

    <Choose>
        <When Condition="'$(ASPNETCORE_ENVIRONMENT)' == 'Development'">
            <ItemGroup>
                <ProjectReference Include="../../core/EngineBay.Core/EngineBay.Core.csproj" />
            </ItemGroup>
        </When>
        <Otherwise>
            <ItemGroup>
                <PackageReference Include="EngineBay.Core" Version="*" />
            </ItemGroup>
        </Otherwise>
    </Choose>

    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.SpaProxy" Version="8.0.0" />
        <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
        <PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
            <PrivateAssets>all</PrivateAssets>
        </PackageReference>
    </ItemGroup>

    <ItemGroup>
        <None Include="../README.md" Pack="true" PackagePath="\" />
        <None Include="../LICENSE.txt" Pack="true" PackagePath="" />
    </ItemGroup>

    <ItemGroup>
        <EmbeddedResource Include="$(SpaRoot)dist/**/*" />
    </ItemGroup>


    <Target Name="EnsureNodeEnv" BeforeTargets="Build" Condition="!Exists('$(SpaRoot)node_modules')">
        <!-- Ensure Node.js is installed -->
        <Exec Command="node --version" ContinueOnError="true">
            <Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
        </Exec>
        <Error Condition="'$(ErrorCode)' != '0'"
            Text="Node.js is required to build and run this project. To continue, please install Node.js from https://nodejs.org/, and then restart your command prompt or IDE." />
        <Message Importance="high"
            Text="Restoring dependencies using 'npm'. This may take several minutes..." />
        <Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
    </Target>

    <Target Name="ReactBuild" AfterTargets="Build">
        <Exec WorkingDirectory="$(SpaRoot)" Command="npm run build" />
    </Target>
</Project>