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

如何配置Lerna永不发布./integration-test目录下的包?

解决Lerna永不发布./integration-test目录包的方案

核心思路

Lerna默认会把所有包含package.json的目录识别为可管理的包,要阻止发布./integration-test下的包,需要从排除Lerna对该目录的包管理入手,以下是两种可靠方案:

方案1:限定Lerna的包扫描范围

直接在lerna.json中指定仅扫描./packages目录,让Lerna完全忽略./integration-test:

{
  "packages": ["packages/*"],
  "version": "independent",
  "npmClient": "yarn",
  "useWorkspaces": true
}

这种方法从根源上切断Lerna对测试目录包的管理,不会触发任何与该包相关的发布逻辑。

方案2:标记测试包为私有

在./integration-test/package.json中添加"private": true字段,Lerna会自动跳过所有标记为私有包的发布流程:

{
  "name": "@foo/test.bar",
  "private": true,
  // 其他原有字段...
}

即使该包依赖的./packages下的包发生变更,Lerna也不会将其纳入发布列表。

为什么之前的配置无效?

  • ignoreChanges仅忽略目标目录的代码变更,但如果该包被Lerna管理,当它依赖的包变更时,仍会触发发布(符合文档中“关联依赖变更强制发布”的规则)。
  • ignore/scope的正则匹配可能因写法或Lerna的匹配逻辑问题未生效,不如上述两种方案直接可靠。

内容的提问来源于stack exchange,提问作者Ivan Rubinson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:10:38