我们在classic中有构建和发布管道,并且有完全相同的任务。据我所知,唯一的区别是发布管道任务中的某些字段需要指示$(System.DefaultWorkingDirectory)
。除此之外,我可以说它们完全相同。我们的管道是这样的:
- Node.js工具安装程序
- npm install --legacy-peer-deps
- npm构建
- DockerBuildandPush
我担心的是,发布管道执行npm install --legacy-peer-deps
任务大约13分钟以上,而在我们的构建管道中不到1分钟。发布和构建管道都使用相同的私有代理池。我假设在构建管道中,它在内部缓存了npm包,现在我在发布管道中探索该高速缓存任务,但有权限问题。
所以我的问题和疑问:有没有办法提高发布管道中npm install --legacy-peer-deps
任务的速度?还是让它与构建管道的执行时间相同?
1条答案
按热度按时间yrefmtwq1#
因此,构建管道的行为与发布管道的不同之处在于,在我们的情况下,构建管道不会清理构建运行中的文件,这意味着在后续运行中,它已经包含node_modules文件夹+存储库文件(我假设在 checkout 时更新)。由于node_modules文件夹中已经存在上一次运行的模块,因此
npm install
任务将只下载和解包新模块。我们目前在发布管道中要做的工作是手动将node_modules存储在构建代理机器中的某个位置,只有当package.json中有新的更改时才更新它。
管道看起来像这样:
1.将缓存的node_modules复制到管道目录中
1.如果pipeline目录中的package.json或node_modules中有更改,请更新缓存的node_modules
1.利润?
P.S.截至编写该高速缓存任务时,经典发布管道不支持该任务。