我们发现自己开发脚手架时的一些痛点
1. 重复操作
- 多package本地link
- 多package依赖安装
- 多package单元测试
- 多package代码提交
- 多package 代码 发布
2.版本一致性
- 发布时版本一致性
- 发布后相互依赖升级 总的来说,项目的package 越多,项目管理的复杂度越大,lerna的价值就来源于此 那么lerna到底是什么呢?lerna官网上是这样描述的。
A tool for managing JavaScript projects with multiple packages. 翻译一下就是,lerna是一个基于git+npm 项目管理的工具
概要
lerna是GitHub上面开源的一款js代码库管理软件, 用来对一系列相互耦合比较大、又相互独立的js git库进行管理。解决各个库之间修改混乱、难以跟踪的问题。lerna可以优化这种情形下的工作流
对于一些功能比较全的库,我们往往会把各个小功能拆分成独立的npm库,他们直接有比较强的依赖关系。比如:Babel、React等开源代码都是按照这种方式进行处理的。 优势
- 大量减少重复操作
- 提升操作的基本化
lerna是架构优化的产物,他揭露了一个架构真理:项目复杂度提升后,就需要对项目进行架构优化,架构优化的目的往往是已效能为核心 官网
接下来就带大家来看看lerna脚手架的开发流程 (重点)