发布网友 发布时间:2024-10-03 09:12
共1个回答
热心网友 时间:2024-10-18 05:26
背景作为一个前端研发,在进行npm包管理时,如果有多个npm包,每个npm包都单独建一个单独的git仓库,管理起来很繁琐而且git仓库太多,版本管理也会很混乱,此时使用monorepo多包架构对npm公共包进行管理尤为重要,lerna就是一个多包管理工具。
像前端比较普遍使用的语法转换工具babel,就是用lerna进行的多包管理。
lerna的版本管理fixmodelerna默认的版本管理是fixmode模式,所有子包的版本都是统一的,使用lernainit可以创建一个monorepo项目,通过lernaversion可以来更新版本,通过lernapublish可以发布对应更新的npm包。
independentmode如果不希望子包的版本统一,创建项目可以使用lernainit--independent,此时每一个子包更新,都可以对单独的子包进行版本更新。
lerna常用命令lernainitlerna项目初始化,首先需要npminstalllerna-g来全局安装lerna,然后通过lernainit初始化一个lerna项目
举个例子:
//创建文件夹mkdirmy-monorepo&&cdmy-monorepo//初始化lerna项目lernainit//此时会初始化一个新的lerna项目,里面有packages目录,可以在该目录下创建对应子包lernacreatexxxlernacreate使用lerna来创建子包,你想在刚初始化的lerna项目下创建一个js-sdk的子包,可以通过lernacreatejs-sdk命令来创建。
lernaadd给对应子包添加依赖,比如:lernaaddmole-1packages/js-sdk,就可以给js-sdk的子包添加依赖
lernaboostrap安装所有子包的node_moles依赖
lernaclean删除所有子包的node_moles依赖
lernaversion更新lerna的所有子包版本,并且push的gitremote
lernapublish发布之前lerna更新的子包,publish到npmjs上
总结因为最近有用lerna做多包管理,今天简单记录了一下lerna的基础用法,使用lerna进行npm包的管理真的特别方便,强烈推荐各个研发团队的npm公共库使用lerna来管理,后面有空再记录一下使用lerna过程中的一些注意事项和有意思的用法吧。