用 Bazel 构建 TypeScript 项目

管理着无数的源码。在每个独立项目间都有依赖,比如Google Cloud 依赖于 Angular & Angular Material,Angular Material 又依赖于 Angular, 最后它们都依赖 TypeScript.

在谷歌中,项目都有使用独立库(以及第三方库)的版本号。在公司内,这极大的简化了依赖管理。同时升级一个库,能影响所有依赖的项目,这样很方便。这样每个人都能从中得到好处,比如最新的安全更新,性能优化,Bug修复。这样做就意味着微软发布新的Typescript, 它会尽快的同步到谷歌内部,可以想你,Typescript的破坏性变更会影响许多代码!

为了验证库升级后没有原来代码,在内部的持续集成中需要重新构建所有的依赖项目,并执行相应测试。因为有无数的TS文件,无数行TS代码,如果把控不好,整个过程可能需要点时间。

多数情况,项目依赖其它项目,比如Google Cloud依赖它的UI和后端服务。当只更新Typescript时,既然后台服务不依赖Typescript,我们不希望它重新构建后台服务!

为了构建项目,谷歌开源了这个Bazel工具。它是一个强大的工具,它可以跟踪不同的包间的依赖,并构建目标。简单说,一个构建就是一个构建规则,比如: “构建一下Typescript库”; 从项目看,一个包对应着一个文件夹中的许多文件,它有清晰的依赖包。在Google Cloud的示例中,Bazel会对应下面这么一个依赖关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值