在 Azure DevOps Build Pipeline 中恢复 Libman JS 库
您无需向.net core
管道添加自定义命令即可恢复 JS 库。
我创建了一个示例来测试LibMan
构建包,它在 Azure devops 上运行良好。
要使用LibMan
构建包,首先,您需要libman.json
在项目中设置正确的 with JS Libraries,例如:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"provider": "cdnjs",
"library": "jquery@3.2.1",
"destination": "wwwroot/lib/jquery",
"files": [
"jquery.min.js",
"jquery.js",
"jquery.min.map"
]
}
]
}
那是因为LibMan
包将恢复基于libman.json
. 您将microsoft.web.librarymanager.build.targets
在LibMan
构建包中找到以下目标:
<Target Name="LibraryManagerRestore" Condition="'$(LibraryRestore)' != 'False'">
<Microsoft.Web.LibraryManager.Build.RestoreTask
FileName="libman.json"
ProjectDirectory="$(MSBuildProjectDirectory)"
ProviderAssemblies="$(LibraryProviderAssemblies)">
<Output TaskParameter="FilesWritten" ItemName="_FilesWritten"/>
</Microsoft.Web.LibraryManager.Build.RestoreTask>
<ItemGroup>
<FilesForPackagingFromProject Include="%(_FilesWritten.Identity)">
<DestinationRelativePath>%(_FilesWritten.Identity)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
此 .targets 只会在构建期间由 MSBuild 解析,
所以,其次,这些 JS 库将在您构建项目时恢复,而不是恢复包。
作为测试,我JS libraries
从我的回购中删除:
然后在 dotnet build 完成后,我可以JS libraries
在文件夹中获取wwwroot/lib/jquery
:
如果它仍然无法解决您的问题,请确保您可以在从 Visual Studio 构建时恢复 JS 库,而无需使用 Azure Devops。
顺便说一句,您还可以使用任务 Libman (Preview) 而不是 MSBuild 来恢复在libman.json
.
希望这可以帮助。