前端的开发工作中,随着项目规模的增大,代码复杂度和依赖项的管理也越来越困难,为了更好地管理前端项目的依赖关系,开发者通常会借助于工具来进行自动化管理,这时候 lerna 就派上了用场。
lerna 是一个优秀的 JS 包管理工具,它允许你将大型的代码库进行划分管理,并让你在其中完成更加高效的开发工作,本文将为你介绍 lerna 的具体使用方法。
安装
通过 npm 安装 lerna:
npm i -g lerna
初始化
在项目的根目录下,运行 lerna init
命令会在当前目录下生成一个名为 packages
的文件夹,该文件夹下的每个子文件夹都可以看成是一个独立的 npm 包。
初始化后的目录结构如下:
my-lerna-project/ packages/ lerna.json package.json
创建子包
我们可以通过 lerna create
命令来创建一个新的子包。
lerna create my-package
这里我们创建了一个名为 my-package
的子包。
创建成功后,会在 packages
目录下生成一个子文件夹,并在该文件夹下生成一个名为 package.json
的文件。
子包之间的互相依赖
由于子包之间是相对独立的,每个子包的依赖项也是独立的,因此我们需要手动配置子包之间的依赖关系。
在子包的 package.json
文件中,添加依赖关系的声明即可。
{ "name": "my-package-1", "version": "1.0.0", "dependencies": { "my-package-2": "^1.0.0" } }
针对单个包进行操作
如需要进行单个包编译、单个包安装依赖等,可使用 lerna run my-script --scope=my-package
的方式。
lerna run start --scope=my-package
针对所有包进行操作
- 所有包都执行
my-script
命令:lerna run my-script
- 所有包都安装依赖:
lerna bootstrap
- 所有包都打 Tag:
lerna version
,需要先 git add/commit 后再执行 - 所有包都提交代码并发布(注意:只有 master 分支才可执行此命令):
lerna publish
,注意在packages
内修改后必须 commit 后才能执行发布。
总结
lerna 可以帮助我们更好地管理前端项目中的依赖关系,不仅能提高开发效率,还能加速代码测试、集成以及部署等过程,希望本文能为你带来帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/anireact-lerna