首页 > 解决方案 > 在单个 jenkins 工作节点上构建多个 Angular 项目

问题描述

多个开发团队正在开发使用 npm 构建的 Angular 7 项目,其中package.json包含所有依赖项。

这些开发团队将代码提供给单个 DevOps 团队来构建代码。


比如说,对于 angular project1 npm install将安装 package.json 提到的所有依赖项,这些依赖项将安装在 jenkins 工作节点上。这些依赖项是使用命令构建角度源代码所必需的npm run build


我的理解是,

对于 Angular project2,package.json 可能有不同版本的类似依赖项。

因此,对于 angular project2 可能不会在同一个 jenkins 工作节点npm install上安装所需的依赖项,这看起来像是一个问题,因为项目 1 已经安装了这些依赖项(但版本不同)。


1)是否建议在单个工作节点(jenkins)上构建多个角度项目?

2)如果不是,每个角度项目构建是否应该在单独的 docker 容器(运行 Jenkins)上进行以解决此问题?

标签: angulardockerjenkinsnpmjenkins-pipeline

解决方案


幸运和不幸的是,有很多方法可以做到这一点。

1) 使用单个节点构建多个项目是“可以的”,但可能需要一些文件夹/归档步骤来避免每次都删除/重新安装依赖项。您可能能够将不同构建的依赖关系保存在存档文件中,这样它们就不会最终发生冲突。请参阅此答案作为起点。

2) 我发现在构建项目时,将项目彼此隔离是最干净的解决方案。虽然我相信这是最好的方法,但我不确定这是否是事实。其他人可以称重吗?


推荐阅读