我正在创建公司项目上的自动化部署流程。实际上,publish profile
是:
主要目标是与WebAPI后端同时部署Angular前端。而且工作正常。
我现在的主要问题是MSBuild卡在npm run buildDev
上。返回命令后,需要花费3分钟以上的时间才能继续执行,我无法确切找到导致进程等待的原因。
很明显,它是直接在npm script
中,因为我在PS脚本末尾添加了Exit 1;
,并且在构建结束后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或其他体系结构在我的公司中尚不可能。 :(