Lerna是什么?
将大型的代码库拆分为独立的带版本的包(independently versioned package)对于代码共享非常有用。不过可惜的是,跨多个库进行内容更改既混乱又很难跟踪,同时也让测试雪上加霜。
为了解决这些(以及其它一些)问题,一些项目将它们的代码库拆分到多个包存储库(有时候也称为单一存储库)中。业内知名的 Babel、React、Angular、Ember、Meteor、Jest 等项目都在一个单独的存储库中开发它们的所有包。
Lerna 是一个使用 git 和 npm 优化多包存储库管理工作流的工具。
Lerna 还可以减少开发和构建环境中大量重复包的时间和空间需求 —— 这通常是将项目划分为许多单独的 NPM 包的缺点。
Lerna 仓库的结构
my-lerna-repo/
package.json
packages/
package-1/
package.json
package-2/
package.json
Lerna 能做什么?
Lerna 中的两个主要命令是lerna bootstrap
和lerna publish
。
bootstrap
将把仓库中的依赖项链接在一起。publish
将帮助发布任意的更新包。
使用Lerna
mkdir lerna-repo && cd $_
//用 npm 将 Lerna 作为项目的开发依赖项安装
npx lerna init
这会创建一个lerna.json
配置文件和packages
文件夹,因此您的文件夹?应该是下面这样的结构:
lerna-repo/ packages/ package.json lerna.json
Lerna 允许您使用两种模式来管理您的项目:固定模式(Fixed)或独立模式(Independent)。
https://www.49855.net/npm-%e4%b8%8e-npx-%e4%bb%80%e4%b9%88%e5%8c%ba%e5%88%ab%ef%bc%9f/