现代前端工程化-基于 Monorepo 的 lerna 模块(从原理到实战)

return fs

.lstat(dest)

.then(() => fs.unlink(dest))

.catch(() => {

/* nothing exists at destination */

})

.then(() => fs.symlink(src, dest, type));

}

更多关于软链的文章,我后面会单独写一篇文章介绍软硬链接,这里知道 lerna 链接部分 的实现就可以了。Node fs 官网 参考2

lerna 基本使用


lerna 环境配置

lerna 在使用之前需要全局安装 lerna 工具。

npm install lerna -g

初始化一个lerna 项目

mkdir lerna-demo,在当前目录下创建文件夹lerna-demo,然后使用命令 lerna init执行成功后,目录下将会生成这样的目录结构。,一个 hello world级别的 lerna 项目就完成了。

image.png

- packages(目录)

- lerna.json(配置文件)

- package.json(工程描述文件)

lerna 常用命令

介绍一些 lerna 常用的命令,常用命令这部分可以简单过一遍,当作一个工具集收藏就行,需要的时候来找下,用着用着就熟练了,主要可以实操下下面的实战小练习,这个过程会遇到一些坑的。

  1. 初始化 lerna 项目

lerna init

  1. 创建一个新的由 lerna 管理的包。

lerna create 

  1. 安装所有·依赖项并连接所有的交叉依赖

lerna bootstrap

  1. 增加模块包到最外层的公共 node_modules

lerna add axios

  1. 增加模块包到 packages 中指定项目 下面是将 ui-web 模块增加到 example-web 项目中

lerna add ui-web --scope=example-web

  1. packages 中对应包下的执行任意命令 下面的命令,是对 packages 下的 example-web 项目执行 yarn start 命令 ,比较常用,可以把它配置到最外层的 package.json 中。

lerna exec --scope example-web – yarn start

如果命令中不增加 --scope example-web直接使用下面的命令,这会在 packages 下所有包执行命令rm -rf ./node_modules

lerna exec – rm -rf ./node_modules

  1. 显示所有的安装的包

lerna list // 等同于 lerna ls

这里再提一个命令也比较常用,可以通过json的方式查看 lerna 安装了哪些包,json 中还包括包的路径,有时候可以用于查找包是否生效。

lerna list --json

  1. 从所有包中删除 node_modules 目录

lerna clean

⚠️注意下 lerna clean 不会删除项目最外层的根 node_modules

  1. 在当前项目中发布包

lerna publish

这个命令可以结合 lerna.json 中的  "version": "independent" 配置一起使用,可以完成统一发布版本号和packages 下每个模版发布的效果&#

  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值