Восстановление Libman JS Библиотеки в Azure DevOps Build Pipeline
Вам не нужно добавлять пользовательскую команду .net core
в конвейер для восстановления библиотек JS .
Я создал образец для тестирования LibMan
пакета сборки, и он отлично работает на Azure devops.
Чтобы использовать пакет сборки LibMan
, сначала необходимо установить правильный libman.json
с JS библиотеками в вашем проекте, например:
{
"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
восстановит библиотеки JS на основе 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>
. Эти цели будут анализироваться только MSBuild во время сборки,
Итак , во-вторых, эти JS библиотеки будут восстановлены, когда вы соберете свой проект вместо восстановления пакетов.
В качестве теста я удаляю JS libraries
из своего репозитория:
Затем, после завершения сборки tnet, я могу получить JS libraries
в папке wwwroot/lib/jquery
:
Если проблема все еще не решена, убедитесь, что вы можете восстановить библиотеки JS при сборке из Visual Studio без Azure Devops.
Кстати, вы также можете использовать задачу Libman (Preview) вместо MSBuild для восстановления пакетов, определенных в libman.json
.
Надеюсь, это поможет.