Lerna(Monorepo 管理)
版本unknown 更新日志2025-11-18 GitHublerna/lerna
340px

初始化与信息 >>>

  • lerna init 初始化(推荐配合工作区管理器,如 pnpm workspaces)
  • lerna info 输出环境与依赖信息
  • lerna add-caching 与 Nx 集成启用缓存/任务图
  • lerna repair 修复常见配置与缓存问题

枚举与变更集 changed list diff

  • lerna list;仅变更:lerna list --since(或指定 tag)
  • lerna changed 基于上次发布推断变更包
  • lerna diff [pkg] 查看指定包的 git 差异

运行与执行 run exec watch

  • lerna run build --stream --concurrency 4 并发且按包流式输出
  • lerna exec -- <cmd>;剖析:--profile 输出性能数据
  • 过滤:--scope pkg-*--ignore tests*--since
  • lerna watch -- <cmd> 监听变更自动执行

版本与发布 version publish

  • lerna version 提升版本并创建 Git tag(支持自定义 --git-tag-command
  • lerna publish:默认交互式;或 from-git/from-package
  • 发布过滤:--skip-npm--yes--preid beta
  • 合并分支 tag:--include-merged-tags(仅特定流程使用)

最佳实践 >>>

  • 工作区:以 pnpm/yarn/npm workspaces 管理包路径
  • Nx:添加缓存、任务图与依赖感知执行(add-caching
  • 流水线:发布前构建/测试/lint/版本一致性校验
  • 锁定:依赖锁文件纳入版本管理并启用严格安装

示例:lerna.json 片段

  • {
      "version": "independent",
      "npmClient": "pnpm",
      "command": {
        "version": { "gitTagCommand": "git tag %s -m %s" },
        "run": { "stream": true }
      }
    }
  • 使用工作区配置包路径;命令行为可在此集中配置