Skip to content

Commit f0afd11

Browse files
authored
[StaticWebAssets] Generate Link elements based on StaticWebAssets manifest properties (#47915)
1 parent 2996384 commit f0afd11

File tree

7 files changed

+523
-85
lines changed

7 files changed

+523
-85
lines changed

src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.HtmlImportMap.targets renamed to src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.HtmlAssetPlaceholders.targets

Lines changed: 53 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!--
22
***********************************************************************************************
3-
Microsoft.NET.Sdk.StaticWebAssets.HtmlImportMap.targets
3+
Microsoft.NET.Sdk.StaticWebAssets.OverrideHtmlAssetPlaceholders.targets
44
55
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
66
created a backup copy. Incorrect changes to this file will make it
@@ -12,74 +12,79 @@ Copyright (c) .NET Foundation. All rights reserved.
1212

1313
<Project ToolsVersion="14.0">
1414

15-
<UsingTask TaskName="Microsoft.AspNetCore.StaticWebAssets.Tasks.WriteImportMapToHtml" AssemblyFile="$(StaticWebAssetsSdkBuildTasksAssembly)" />
15+
<UsingTask TaskName="Microsoft.AspNetCore.StaticWebAssets.Tasks.OverrideHtmlAssetPlaceholders" AssemblyFile="$(StaticWebAssetsSdkBuildTasksAssembly)" />
16+
17+
<PropertyGroup>
18+
<!-- Workaround until we update runtime -->
19+
<WriteImportMapToHtml>true</WriteImportMapToHtml>
20+
</PropertyGroup>
1621

1722
<PropertyGroup>
1823

1924
<!--
2025
ResolveBuildRelatedStaticWebAssets
21-
ResolveHtmlImportMapBuildStaticWebAssets
22-
GenerateHtmlImportMapBuildStaticWebAssets
23-
ResolveHtmlImportMapBuildConfiguration
26+
ResolveHtmlAssetPlaceholdersBuildStaticWebAssets
27+
GenerateHtmlAssetPlaceholdersBuildStaticWebAssets
28+
ResolveHtmlAssetPlaceholdersBuildConfiguration
2429
-->
2530
<ResolveBuildRelatedStaticWebAssetsDependsOn>
2631
$(ResolveBuildRelatedStaticWebAssetsDependsOn);
27-
ResolveHtmlImportMapBuildStaticWebAssets;
32+
ResolveHtmlAssetPlaceholdersBuildStaticWebAssets;
2833
</ResolveBuildRelatedStaticWebAssetsDependsOn>
2934
<ResolveCompressedFilesDependsOn>
3035
$(ResolveCompressedFilesDependsOn);
31-
ResolveHtmlImportMapBuildStaticWebAssets
36+
ResolveHtmlAssetPlaceholdersBuildStaticWebAssets
3237
</ResolveCompressedFilesDependsOn>
3338
<ResolveBuildServiceWorkerStaticWebAssetsDependsOn>
3439
$(ResolveBuildServiceWorkerStaticWebAssetsDependsOn);
35-
ResolveHtmlImportMapBuildStaticWebAssets
40+
ResolveHtmlAssetPlaceholdersBuildStaticWebAssets
3641
</ResolveBuildServiceWorkerStaticWebAssetsDependsOn>
37-
<ResolveHtmlImportMapBuildStaticWebAssetsDependsOn>
38-
GenerateHtmlImportMapBuildStaticWebAssets;
39-
$(ResolveHtmlImportMapBuildStaticWebAssetsDependsOn)
40-
</ResolveHtmlImportMapBuildStaticWebAssetsDependsOn>
41-
<GenerateHtmlImportMapBuildStaticWebAssetsDependsOn>
42-
ResolveHtmlImportMapBuildConfiguration;
43-
$(GenerateHtmlImportMapBuildStaticWebAssetsDependsOn)
44-
</GenerateHtmlImportMapBuildStaticWebAssetsDependsOn>
42+
<ResolveHtmlAssetPlaceholdersBuildStaticWebAssetsDependsOn>
43+
$(ResolveHtmlAssetPlaceholdersBuildStaticWebAssetsDependsOn);
44+
GenerateHtmlAssetPlaceholdersBuildStaticWebAssets
45+
</ResolveHtmlAssetPlaceholdersBuildStaticWebAssetsDependsOn>
46+
<GenerateHtmlAssetPlaceholdersBuildStaticWebAssetsDependsOn>
47+
$(GenerateHtmlAssetPlaceholdersBuildStaticWebAssetsDependsOn);
48+
ResolveHtmlAssetPlaceholdersBuildConfiguration
49+
</GenerateHtmlAssetPlaceholdersBuildStaticWebAssetsDependsOn>
4550

4651
<!--
4752
ResolvePublishRelatedStaticWebAssets
48-
ResolveHtmlImportMapPublishStaticWebAssets
49-
GenerateHtmlImportMapPublishStaticWebAssets
50-
ResolveHtmlImportMapPublishConfiguration
53+
ResolveHtmlAssetPlaceholdersPublishStaticWebAssets
54+
GenerateHtmlAssetPlaceholdersPublishStaticWebAssets
55+
ResolveHtmlAssetPlaceholdersPublishConfiguration
5156
-->
5257
<ResolvePublishRelatedStaticWebAssetsDependsOn>
5358
$(ResolvePublishRelatedStaticWebAssetsDependsOn);
54-
ResolveHtmlImportMapPublishStaticWebAssets
59+
ResolveHtmlAssetPlaceholdersPublishStaticWebAssets
5560
</ResolvePublishRelatedStaticWebAssetsDependsOn>
5661
<ResolvePublishCompressedStaticWebAssetsDependsOn>
5762
$(ResolvePublishCompressedStaticWebAssetsDependsOn);
58-
ResolveHtmlImportMapPublishStaticWebAssets
63+
ResolveHtmlAssetPlaceholdersPublishStaticWebAssets
5964
</ResolvePublishCompressedStaticWebAssetsDependsOn>
6065
<ResolvePublishServiceWorkerStaticWebAssetsDependsOn>
6166
$(ResolvePublishServiceWorkerStaticWebAssetsDependsOn);
62-
ResolveHtmlImportMapPublishStaticWebAssets
67+
ResolveHtmlAssetPlaceholdersPublishStaticWebAssets
6368
</ResolvePublishServiceWorkerStaticWebAssetsDependsOn>
64-
<ResolveHtmlImportMapPublishStaticWebAssetsDependsOn>
65-
GenerateHtmlImportMapPublishStaticWebAssets;
66-
$(ResolveHtmlImportMapPublishStaticWebAssetsDependsOn)
67-
</ResolveHtmlImportMapPublishStaticWebAssetsDependsOn>
68-
<GenerateHtmlImportMapPublishStaticWebAssetsDependsOn>
69-
ResolveHtmlImportMapPublishConfiguration;
70-
$(GenerateHtmlImportMapPublishStaticWebAssetsDependsOn)
71-
</GenerateHtmlImportMapPublishStaticWebAssetsDependsOn>
69+
<ResolveHtmlAssetPlaceholdersPublishStaticWebAssetsDependsOn>
70+
$(ResolveHtmlAssetPlaceholdersPublishStaticWebAssetsDependsOn);
71+
GenerateHtmlAssetPlaceholdersPublishStaticWebAssets
72+
</ResolveHtmlAssetPlaceholdersPublishStaticWebAssetsDependsOn>
73+
<GenerateHtmlAssetPlaceholdersPublishStaticWebAssetsDependsOn>
74+
$(GenerateHtmlAssetPlaceholdersPublishStaticWebAssetsDependsOn);
75+
ResolveHtmlAssetPlaceholdersPublishConfiguration
76+
</GenerateHtmlAssetPlaceholdersPublishStaticWebAssetsDependsOn>
7277

7378
</PropertyGroup>
7479

7580
<!-- Build -->
7681

77-
<Target Name="ResolveHtmlImportMapBuildConfiguration">
82+
<Target Name="ResolveHtmlAssetPlaceholdersBuildConfiguration">
7883
<PropertyGroup>
79-
<_BuildImportMapHtmlPath>$([MSBuild]::NormalizeDirectory($(_StaticWebAssetsIntermediateOutputPath), 'importmaphtml', 'build'))</_BuildImportMapHtmlPath>
84+
<_BuildHtmlAssetPlaceholdersPath>$([MSBuild]::NormalizeDirectory($(_StaticWebAssetsIntermediateOutputPath), 'htmlassetplaceholders', 'build'))</_BuildHtmlAssetPlaceholdersPath>
8085
</PropertyGroup>
8186

82-
<MakeDir Directories="$(_BuildImportMapHtmlPath)"/>
87+
<MakeDir Directories="$(_BuildHtmlAssetPlaceholdersPath)"/>
8388

8489
<ItemGroup>
8590
<_HtmlStaticWebAssets Include="@(StaticWebAsset)" Condition="'%(AssetKind)' != 'Publish' and '%(Extension)' == '.html'" />
@@ -95,25 +100,25 @@ Copyright (c) .NET Foundation. All rights reserved.
95100
</FilterStaticWebAssetEndpoints>
96101
</Target>
97102

98-
<Target Name="GenerateHtmlImportMapBuildStaticWebAssets" DependsOnTargets="$(GenerateHtmlImportMapBuildStaticWebAssetsDependsOn)">
99-
<WriteImportMapToHtml
103+
<Target Name="GenerateHtmlAssetPlaceholdersBuildStaticWebAssets" DependsOnTargets="$(GenerateHtmlAssetPlaceholdersBuildStaticWebAssetsDependsOn)">
104+
<OverrideHtmlAssetPlaceholders
100105
Assets="@(_EsModuleCandidate)"
101106
Endpoints="@(_EsModuleCandidateEndpoints)"
102107
IncludeOnlyHardFingerprintedModules="false"
103108
HtmlFiles="@(_HtmlStaticWebAssets)"
104-
OutputPath="$(_BuildImportMapHtmlPath)">
109+
OutputPath="$(_BuildHtmlAssetPlaceholdersPath)">
105110
<Output TaskParameter="HtmlCandidates" ItemName="_HtmlCandidates" />
106111
<Output TaskParameter="HtmlFilesToRemove" ItemName="_HtmlFilesToRemove" />
107112
<Output TaskParameter="FileWrites" ItemName="FileWrites" />
108-
</WriteImportMapToHtml>
113+
</OverrideHtmlAssetPlaceholders>
109114
</Target>
110115

111-
<Target Name="ResolveHtmlImportMapBuildStaticWebAssets" DependsOnTargets="$(ResolveHtmlImportMapBuildStaticWebAssetsDependsOn)">
116+
<Target Name="ResolveHtmlAssetPlaceholdersBuildStaticWebAssets" DependsOnTargets="$(ResolveHtmlAssetPlaceholdersBuildStaticWebAssetsDependsOn)">
112117
<ItemGroup>
113118
<_HtmlCandidatesNoMetadata
114119
Include="@(_HtmlCandidates)"
115120
RemoveMetadata="SourceType;AssetKind;Integrity;Fingerprint" />
116-
<_HtmlCandidatesNoMetadata ContentRoot="$(_BuildImportMapHtmlPath)" />
121+
<_HtmlCandidatesNoMetadata ContentRoot="$(_BuildHtmlAssetPlaceholdersPath)" />
117122
</ItemGroup>
118123
<DefineStaticWebAssets CandidateAssets="@(_HtmlCandidatesNoMetadata)"
119124
SourceType="Computed"
@@ -145,12 +150,12 @@ Copyright (c) .NET Foundation. All rights reserved.
145150

146151
<!-- Publish -->
147152

148-
<Target Name="ResolveHtmlImportMapPublishConfiguration">
153+
<Target Name="ResolveHtmlAssetPlaceholdersPublishConfiguration">
149154
<PropertyGroup>
150-
<_PublishImportMapHtmlPath>$([MSBuild]::NormalizeDirectory($(_StaticWebAssetsIntermediateOutputPath), 'importmaphtml', 'publish'))</_PublishImportMapHtmlPath>
155+
<_PublishHtmlAssetPlaceholdersPath>$([MSBuild]::NormalizeDirectory($(_StaticWebAssetsIntermediateOutputPath), 'htmlassetplaceholders', 'publish'))</_PublishHtmlAssetPlaceholdersPath>
151156
</PropertyGroup>
152157

153-
<MakeDir Directories="$(_PublishImportMapHtmlPath)"/>
158+
<MakeDir Directories="$(_PublishHtmlAssetPlaceholdersPath)"/>
154159

155160
<ItemGroup>
156161
<_EsModuleCandidateForPublish Include="@(StaticWebAsset)" Condition="'%(AssetKind)' != 'Build'" />
@@ -165,25 +170,25 @@ Copyright (c) .NET Foundation. All rights reserved.
165170
</FilterStaticWebAssetEndpoints>
166171
</Target>
167172

168-
<Target Name="GenerateHtmlImportMapPublishStaticWebAssets" DependsOnTargets="$(GenerateHtmlImportMapPublishStaticWebAssetsDependsOn)">
169-
<WriteImportMapToHtml
173+
<Target Name="GenerateHtmlAssetPlaceholdersPublishStaticWebAssets" DependsOnTargets="$(GenerateHtmlAssetPlaceholdersPublishStaticWebAssetsDependsOn)">
174+
<OverrideHtmlAssetPlaceholders
170175
Assets="@(_EsModuleCandidateForPublish)"
171176
Endpoints="@(_EsModuleCandidateForPublishEndpoints)"
172177
IncludeOnlyHardFingerprintedModules="true"
173178
HtmlFiles="@(_HtmlStaticWebAssets)"
174-
OutputPath="$(_PublishImportMapHtmlPath)">
179+
OutputPath="$(_PublishHtmlAssetPlaceholdersPath)">
175180
<Output TaskParameter="HtmlCandidates" ItemName="_HtmlPublishCandidates" />
176181
<Output TaskParameter="HtmlFilesToRemove" ItemName="_HtmlPublishFilesToRemove" />
177182
<Output TaskParameter="FileWrites" ItemName="FileWrites" />
178-
</WriteImportMapToHtml>
183+
</OverrideHtmlAssetPlaceholders>
179184
</Target>
180185

181-
<Target Name="ResolveHtmlImportMapPublishStaticWebAssets" DependsOnTargets="$(ResolveHtmlImportMapPublishStaticWebAssetsDependsOn)">
186+
<Target Name="ResolveHtmlAssetPlaceholdersPublishStaticWebAssets" DependsOnTargets="$(ResolveHtmlAssetPlaceholdersPublishStaticWebAssetsDependsOn)">
182187
<ItemGroup>
183188
<_HtmlPublishCandidatesNoMetadata
184189
Include="@(_HtmlPublishCandidates)"
185190
RemoveMetadata="SourceType;AssetKind;Integrity;Fingerprint" />
186-
<_HtmlPublishCandidatesNoMetadata ContentRoot="$(_PublishImportMapHtmlPath)" />
191+
<_HtmlPublishCandidatesNoMetadata ContentRoot="$(_PublishHtmlAssetPlaceholdersPath)" />
187192
</ItemGroup>
188193
<DefineStaticWebAssets CandidateAssets="@(_HtmlPublishCandidatesNoMetadata)"
189194
SourceType="Computed"

src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,6 @@ Copyright (c) .NET Foundation. All rights reserved.
741741

742742
<Import Project="Microsoft.NET.Sdk.StaticWebAssets.ServiceWorker.targets" Condition="'$(ServiceWorkerAssetsManifest)' != ''" />
743743

744-
<Import Project="Microsoft.NET.Sdk.StaticWebAssets.HtmlImportMap.targets" Condition="'$(WriteImportMapToHtml)' == 'true'" />
744+
<Import Project="Microsoft.NET.Sdk.StaticWebAssets.HtmlAssetPlaceholders.targets" Condition="'$(OverrideHtmlAssetPlaceholders)' == 'true'" />
745745

746746
</Project>

0 commit comments

Comments
 (0)