angular - 在单个 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)上进行以解决此问题?
解决方案
幸运和不幸的是,有很多方法可以做到这一点。
1) 使用单个节点构建多个项目是“可以的”,但可能需要一些文件夹/归档步骤来避免每次都删除/重新安装依赖项。您可能能够将不同构建的依赖关系保存在存档文件中,这样它们就不会最终发生冲突。请参阅此答案作为起点。
2) 我发现在构建项目时,将项目彼此隔离是最干净的解决方案。虽然我相信这是最好的方法,但我不确定这是否是事实。其他人可以称重吗?
推荐阅读
- wordpress - 有人可以解释这段代码// wordpress
- python - 深度 Q 网络给出相同的 Q 值并且没有改善
- react-native - 从 React Native 中的参数获取数据并将其传递给属性
- javascript - 将 firestore 对象存储在数组中,然后根据数字键进行排序
- ansible - 剧本中的get_url错误,从网络服务器下载文件
- actframework - 有没有办法等待一个不会阻塞 Act Framework 中执行线程的 Future 完成?
- python - 美丽的汤返回“无”
- tableau-api - Qliksense 中的参数
- javascript - 如何从 Puppeteer 中的 javascript 响应中获取 json 数据:
- c# - 将 JObject 转换为匿名类型