美文网首页
Lerna 入门教程

Lerna 入门教程

作者: jia林 | 来源:发表于2021-06-15 11:14 被阅读0次

    概念

    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

    相关文章

      网友评论

          本文标题:Lerna 入门教程

          本文链接:https://www.haomeiwen.com/subject/ckfzeltx.html