Lerna 入门教程

概念

1.lerna 是什么

Lerna 是一个用来优化托管在git\npm上的多package代码库的工作流的一个管理工具,可以让你在主项目下管理多个子项目,从而解决了多个包互相依赖,且发布时需要手动维护多个包的问题。目前babel、react都使用了lerna的多包管理。

2.lerna 基本结构

lerna-project/
    |-- packages/
        |-- packages-a/
            |-- ...
            |-- package.json
        |-- packages-b/
            |-- ...
            |-- package.json
    |-- ...
    |-- lerna.json
    |-- package.json

项目构建

  • npm i -g lerna
  • 初始化项目
1. 新建文件夹
2. npm init -y
3. lerna init
  • 增加2个 packages
/*@gjl-lerna-demo  这个是你在 npm 将要新建组织名,便于之后的发布*/

lerna create @gjl-lerna-demo/view
lerna create @gjl-lerna-demo/utils
// create 命令详情 请参考 lerna create
  • 分别给相应的 package 增加依赖模块
lerna add chalk              // 为所有 package 增加 chalk 模块
lerna add semver --scope @gjl-lerna-demo/utils   // 为 @gjl-lerna-demo/utilss 增加 semver 模块
lerna add @gjl-lerna-demo/log --scope @gjl-lerna-demo/utils  // 增加内部模块之间的依赖
  • lerna 常用命令
命令 描述
lerna bootstrap 安装依赖
lerna clean 删除各个包下的node_modules
lerna init 创建新的lerna库
lerna list 显示package列表
lerna changed 显示自上次relase tag以来有修改的包, 选项通 list
lerna diff 显示自上次relase tag以来有修改的包的差异, 执行 git diff
lerna exec 在每个包目录下执行任意命令
lerna run 执行每个包package.json中的脚本命令
lerna add 添加一个包的版本为各个包的依赖
lerna import 引入package
lerna link 链接互相引用的库
lerna create 新建package
lerna publish 发布

项目发布

发布前准备

1.每个包下的 package.json 文件需要进行配置

  "publishConfig": {
    "registry": "https://registry.npm.taobao.org/",
    "access": "public"
  },

2.申请npm 账号,新建组织,组织名要和 lerna create @xxxx/yyy 中 xxxx 对应


image.png

image.png

发布

1.将本地代码推送至远程 git 仓库
2.npm login 输入 账号密码
3.lerna publish 发布到 npm 仓库

备注:只要操作lerna publish命令, 一定要先推送至远程仓库

4.发布成功,之后别人就可以使用 npm 安装了,npm i @xxxx/yyy -D


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lerna简介 Lerna是一个优化基于git + npm的多package项目的管理工具 优势 大幅减少重复操作...
    无懈可击阅读 5,741评论 0 1
  • lerna 概要 lerna是GitHub上面开源的一款js代码库管理软件, 用来对一系列相互耦合比较大、又相互独...
    年轻人多学点阅读 5,716评论 0 2
  • lerna 概要 lerna是GitHub上面开源的一款js代码库管理软件, 用来对一系列相互耦合比较大、又相互独...
    sovran阅读 90,041评论 3 33
  • lerna### Lerna 是一个用来优化托管在git\npm上的多package代码库的工作流的一个管理工具,...
    pgf阅读 41,098评论 5 13
  • Node的包管理器 JavaScript缺少包结构的定义,而CommonJS定义了一系列的规范。而NPM的出现则是...
    IT老马阅读 7,993评论 0 5

友情链接更多精彩内容