Build incrementalism for npmpropj files (#14032)
* Build incrementalism for npmpropj files * Ensure missing js output files results in rebuild * Make the _Pack target incremental * Reduce build spew
This commit is contained in:
parent
d7e19c429c
commit
a6fb55c405
|
|
@ -20,16 +20,20 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<TSFiles Include="$(MSBuildProjectDirectory)\*\*.ts" />
|
<TSFiles Include="src\**\*.ts" />
|
||||||
<TSFiles Include="$(MSBuildProjectDirectory)\package.json" />
|
<TSFiles Include="test\**\*.ts" />
|
||||||
<TSFiles Include="$(MSBuildProjectDirectory)\*.npmproj" />
|
<TSFiles Include="package.json" />
|
||||||
|
<TSFiles Include="*.npmproj" />
|
||||||
|
|
||||||
|
<BuildOutputFiles Include="$(BaseIntermediateOutputPath)\build-sentinel" />
|
||||||
|
<BuildOutputFiles Include="dist\**\*.js" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Target Name="_CheckForInvalidConfiguration">
|
<Target Name="_CheckForInvalidConfiguration">
|
||||||
<Error Text="Missing expected property: PackageId" Condition="'$(IsPackable)' != 'false' and '$(PackageId)' == ''" />
|
<Error Text="Missing expected property: PackageId" Condition="'$(IsPackable)' != 'false' and '$(PackageId)' == ''" />
|
||||||
|
|
||||||
<Exec ContinueOnError="true" Command="node -v">
|
<Exec ContinueOnError="true" Command="node -v" StandardOutputImportance="Low">
|
||||||
<Output TaskParameter="ExitCode" PropertyName="ErrorCode"/>
|
<Output TaskParameter="ExitCode" PropertyName="ErrorCode"/>
|
||||||
</Exec>
|
</Exec>
|
||||||
|
|
||||||
<Error Text="Building *.npmproj but NodeJS was not detected on path. Ensure NodeJS is on path or disable building NodeJS projects with /p:BuildNodeJs=false. Skipping NodeJS projects will also skip managed projects depending on them, including Components, Mvc and Analysers." Condition="'$(ErrorCode)' != '0'"/>
|
<Error Text="Building *.npmproj but NodeJS was not detected on path. Ensure NodeJS is on path or disable building NodeJS projects with /p:BuildNodeJs=false. Skipping NodeJS projects will also skip managed projects depending on them, including Components, Mvc and Analysers." Condition="'$(ErrorCode)' != '0'"/>
|
||||||
|
|
@ -53,12 +57,25 @@
|
||||||
<CallTarget Targets="_Pack" Condition="'$(PackOnBuild)' == 'true'" />
|
<CallTarget Targets="_Pack" Condition="'$(PackOnBuild)' == 'true'" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="GetBuildInputCacheFile">
|
||||||
|
<Hash ItemsToHash="@(TSFiles)">
|
||||||
|
<Output TaskParameter="HashResult" PropertyName="_TSFileHash" />
|
||||||
|
</Hash>
|
||||||
|
|
||||||
|
<WriteLinesToFile
|
||||||
|
Lines="$(_TSFileHash)"
|
||||||
|
File="$(BaseIntermediateOutputPath)tsfiles.cache"
|
||||||
|
Overwrite="True"
|
||||||
|
WriteOnlyWhenDifferent="True" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
<Target Name="_Build"
|
<Target Name="_Build"
|
||||||
Condition="'$(IsBuildable)' != 'false'"
|
Condition="'$(IsBuildable)' != 'false'"
|
||||||
Inputs="@(TSFiles)"
|
DependsOnTargets="GetBuildInputCacheFile"
|
||||||
Outputs="$(BaseIntermediateOutputPath)\build-sentinel" >
|
Inputs="@(TSFiles);$(BaseIntermediateOutputPath)tsfiles.cache"
|
||||||
|
Outputs="@(BuildOutputFiles)">
|
||||||
<Yarn Command="$(NpmBuildArgs)" StandardOutputImportance="High" StandardErrorImportance="High" />
|
<Yarn Command="$(NpmBuildArgs)" StandardOutputImportance="High" StandardErrorImportance="High" />
|
||||||
<WriteLinesToFile Overwrite="true" File="$(BaseIntermediateOutputPath)\build-sentinel" />
|
<WriteLinesToFile Overwrite="true" File="$(BaseIntermediateOutputPath)build-sentinel" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|
@ -73,7 +90,10 @@
|
||||||
</PackDependsOn>
|
</PackDependsOn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Target Name="_Pack" Condition="'$(IsPackable)' == 'true'" >
|
<Target Name="_Pack" Condition="'$(IsPackable)' == 'true'"
|
||||||
|
Inputs="@(TSFiles)"
|
||||||
|
Outputs="$(PackageOutputPath)\$(PackageFileName)">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_PackageTargetPath>$(MSBuildProjectDirectory)\$(PackageFileName)</_PackageTargetPath>
|
<_PackageTargetPath>$(MSBuildProjectDirectory)\$(PackageFileName)</_PackageTargetPath>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,11 @@
|
||||||
<IsPackable>false</IsPackable>
|
<IsPackable>false</IsPackable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<BuildOutputFiles Include="dist\release\blazor.server.js" />
|
||||||
|
<BuildOutputFiles Include="dist\release\blazor.webassembly.js" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference
|
<ProjectReference
|
||||||
Include="..\..\SignalR\clients\ts\signalr\signalr.npmproj"
|
Include="..\..\SignalR\clients\ts\signalr\signalr.npmproj"
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -13,5 +13,9 @@
|
||||||
<ProjectReference Include="..\signalr\signalr.npmproj" />
|
<ProjectReference Include="..\signalr\signalr.npmproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<BuildOutputFiles Include="dist\browser\signalr-protocol-msgpack.js" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -8,5 +8,10 @@
|
||||||
<IsShippingPackage>true</IsShippingPackage>
|
<IsShippingPackage>true</IsShippingPackage>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<BuildOutputFiles Include="dist\browser\signalr.js" />
|
||||||
|
<BuildOutputFiles Include="dist\webworker\signalr.js" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue