Я создаю процесс автоматизации развертывания на проекте компании.На самом деле, publish profile
это:
- Сборка проекта Angular с помощью команды PS
- Копирование файла dist на сервер.
Основная задачазаключается в развертывании Angular-интерфейса одновременно с Web-интерфейсом.И он работает "хорошо".
Моя главная проблема сейчас заключается в том, что MSBuild застрял на npm run buildDev
.Продолжение выполнения после возврата команды занимает более 3 минут, и я не могу точно определить, что заставляет процесс ждать.
По-видимому, это прямо в npm script
, так как я добавил Exit 1;
в конце моего сценария PS, и он был запущен через 3 минуты после окончания сборки.
Вотмоя .pubxml
важная часть:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
...
<PipelineDependsOn>
CustomBeforePublish;
$(PipelineDependsOn);
</PipelineDependsOn>
<CopyAllFilesToSingleFolderForPackageDependsOn>
...
</PropertyGroup>
<Target Name="CustomBeforePublish">
<Message Text="CustomBeforePublish - Build Angular Application" Importance="high" />
<Exec Command="powershell.exe "Push-Location ..\FrontEndDirectory\; npm run buildDev; Pop-Location;"" />
</Target>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="$(MSBuildProjectDirectory)\dist\**" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>dist\%(RecursiveDir)%(Filename)%(Extension) </DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
</Project>
И, как описано, процесс застрял в конце задачи npm.
2>chunk {main} main.js, main.js.map (main) 401 kB [initial] [rendered]
2>chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 426 kB [initial] [rendered]
2>chunk {runtime} runtime.js, runtime.js.map (runtime) 5.22 kB [entry] [rendered]
2>chunk {styles} styles.js, styles.js.map (styles) 176 kB [initial] [rendered]
2>chunk {vendor} vendor.js, vendor.js.map (vendor) 2.87 MB [initial] [rendered]
Есть ли способ исправить это странное поведениеили я вынужден ждать эти долгие минуты при каждом развертывании?
CI или другая архитектура в моей компании, к сожалению, пока невозможна.(