首页
/ 《Lerna Monorepo GitHub Actions 发布流程》启动和配置教程

《Lerna Monorepo GitHub Actions 发布流程》启动和配置教程

2025-05-09 11:40:28作者:齐添朝

1. 项目的目录结构及介绍

lerna-monorepo-github-actions-release 项目是一个使用 Lerna 管理的多包仓库(monorepo)项目,它通过 GitHub Actions 实现自动化发布。项目的目录结构大致如下:

lerna-monorepo-github-actions-release/
├── packages/                         # 存放所有子包的目录
│   ├── package-1/                    # 子包1
│   │   ├── package.json              # 子包1的配置文件
│   │   └── ...                       # 子包1的其他文件
│   ├── package-2/                    # 子包2
│   │   ├── package.json              # 子包2的配置文件
│   │   └── ...                       # 子包2的其他文件
│   └── ...                           # 其他子包
├── lerna.json                        # Lerna 的配置文件
├── .gitignore                        # Git 忽略文件
├── .github/                          # GitHub Actions 工作流的目录
│   └── workflows/                    # 工作流文件存放目录
│       └── release.yml               # 发布工作流文件
└── ...                               # 其他项目文件
  • packages/:存放所有子包的目录。
  • lerna.json:Lerna 的配置文件,定义了项目的结构以及如何管理包。
  • .gitignore:指定 Git 忽略跟踪的文件和目录。
  • .github/:存放 GitHub Actions 相关的工作流配置文件。

2. 项目的启动文件介绍

在 Lerna Monorepo 项目中,并没有一个单一的“启动文件”。通常,你会进入到一个具体的子包目录中,使用 npmyarn 运行相应的脚本。例如,如果你想启动 package-1 子包,你可以执行以下命令:

cd packages/package-1
npm run start

或者使用 yarn

cd packages/package-1
yarn start

启动命令通常在子包的 package.json 文件中定义。

3. 项目的配置文件介绍

  • lerna.json:Lerna 的配置文件,它定义了如何处理包的版本、依赖关系管理等。以下是一个示例配置:
{
  "packages": ["packages/*"],
  "version": "independent",
  "command": {
    "publish": {
      "skipGitCheckout": true
    }
  }
}
  • .github/workflows/release.yml:这是一个 GitHub Actions 工作流配置文件,用于自动化发布流程。以下是一个示例配置:
name: Release

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install dependencies
        run: npm install

      - name: Publish packages
        run: npx lerna publish

这个配置会在推送到带有 v* 标签的分支时触发,然后执行一系列步骤,包括检出代码、设置 Node.js 环境、安装依赖和发布包。

登录后查看全文
热门项目推荐