You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Lerna发布mono-repository中的指定单个软件包?

Lerna 单包发布操作方法

Lerna 完全支持monorepo架构下的单个软件包独立发布,不需要全量发布仓库内所有包。你的仓库结构参考如下:
example config

核心发布命令

通过--scope参数指定目标包名即可实现单包发布,命令格式:

lerna publish --scope=<目标包在package.json中登记的name字段值>

举个实际例子,如果你要发布的包存放在packages/request目录,对应package.json里的name是@myteam/request,直接执行:

lerna publish --scope=@myteam/request

执行后Lerna只会检测这个包的改动、弹出版本选择提示,完成版本号更新、打tag、推送到npm的全流程,不会影响仓库内其他包。

常见场景的参数搭配

  • 已经手动改完目标包的版本号,不需要Lerna再提示选版本:
    lerna publish from-package --scope=@myteam/request
    
    这个命令会自动比对本地包版本和npm上已发布的版本,只有本地版本高于npm已发布版本时才会执行发布,跳过版本交互步骤。
  • 发布测试/预发布版本:
    比如要发alpha测试版,不影响用户默认安装的稳定版,可以执行:
    lerna publish prerelease --scope=@myteam/request --dist-tag=alpha
    
    执行后会自动生成类似1.0.1-alpha.0的版本号,并且打上alpha标签,用户需要执行npm install @myteam/request@alpha才能安装到这个测试版本。

注意事项

  • --scope匹配的是包package.json里的name字段,不是本地文件夹名,哪怕文件夹名和包名不一致,也要填正确的包名才能匹配到目标包。
  • Lerna会自动检测目标包的内部依赖:如果目标包依赖了仓库内的其他本地包,会自动更新对应依赖的版本引用,不会出现发布后引用不存在版本的问题。
  • 发布前先确认本地npm已经登录,且账号对目标包有发布权限,否则会抛出403权限错误。
  • 目前Lerna 5.x/6.x/7.x版本都原生支持上述参数,不需要额外修改lerna.json配置。

内容的提问来源于stack exchange,提问作者Tiago André

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:27:25