0
点赞
收藏
分享

微信扫一扫

Lerna 演练

Gaaidou 2022-03-11 阅读 51
前端

安装

全局安装 lerna: npm install -g lerna

指令备查

指令描述
lerna bootstrap --hoist安装依赖
lerna clean删除各个包下的node_modules
lerna init创建新的lerna库
lerna list显示package列表
lerna changed显示自上次relase tag以来有修改的包, 选项通 list
lerna dif显示自上次relase tag以来有修改的包的差异, 执行 git diff
lerna exec在每个包目录下执行任意命令
lerna run执行每个包package.json中的脚本命令
lerna add dt-ui --scope=brandownerbrandowner添加dt-ui作为依赖库使用
lerna add axios --exact --scope=dt-ui增加第三方包依赖
lerna add axios --dev --exact --scope=dt-ui增加第三方打包依赖
lerna import引入package
lerna link链接互相引用的库
lerna create loc新建项目 loc是创建位置,默认是packages
lerna publish发布
lerna version --amend --no-private --yes更改自上次发布以来的包版本号

实战演练

  1. 初始化项目
    创建 lerna-ui 空文件夹,初始化 lerna init:mkdir lerne-ui && cd lerne-ui && lerna init
    修改 lerna.json 中的 version 配置为 independent

  2. 创建子项目
    进入 packages 目录,执行
    npx create-react-app ui-web --typescript
    npx vue create ui-example

  3. 提取共同依赖
    执行 lerna clean 删除子项目的 node_modules,然后执行命令 lerna bootstrap --hoist

  4. yarn workspances 解决不同项目依赖不同版本号的问题**(验证未通过)**
    lerna.json 中增加以下配置

    "npmClient": "yarn",  // 指定 npmClent 为 yarn
    "useWorkspaces": true // 将 useWorkspaces 设置为 true
    

    在顶层 package.json 中增加配置

    {
        "workspaces":[
            "packages/*"
        ]
    }
    

    增加了这个配置后 不再需要 lerna bootstrap 来安装依赖了,可以直接使用 yarn install 进行依赖的安装。注意:yarn install 无论在顶层运行还是在任意一个子项目运行效果都可以

  5. 启动子项目
    笨方法:进入 packages/子项目目录,执行 yarn start
    lerna 的方法:
    在顶层 package.json 中进行配置 script

    "scripts": {
        "web": "lerna exec --scope example-web -- yarn start",
    }
    

    在顶层 lerna.json 中增加配置

    {
    	"npmClient": "true"
    }
    
  6. 模块引用
    在项目 example-web 中增加 ui-common 模块依赖:
    lerna add ui-common --scope=example-web

  7. 发布
    lerna publish
    注意版本号维护问题

举报

相关推荐

0 条评论