将 glob 与 lerna --scope 一起使用,按包名或目录名过滤

using glob with lerna --scope filtering by package name or directory name

使用 lerna 时,我在创建 glob 模式以查找具有共同命名约定的多个包时遇到了问题。我应该搜索 package.json 中的目录路径或名称字段吗?

目录结构

packages/
    prefix-module-identifier1
    prefix-module-identifier2
    prefix-module-identifier3
    prefix-platform-identifier1
    prefix-platform-identifier2

包命名约定

@nameSpaceScope/prefix-module-identifier1
@nameSpaceScope/prefix-module-identifier2
@nameSpaceScope/prefix-module-identifier3
@nameSpaceScope/prefix-platform-identifier1
@nameSpaceScope/prefix-platform-identifier2

我想 运行 只针对 module 包或 platform 包的命令。在这些示例中,我只查找模块包 我试过 globs 用于:

--scope *module*
--scope **/*module*
--scope packages/*module*
--scope @nameSpaceScope/*module*
--scope @nameSpaceScope/+(*module*)

最接近的 glob 是 --scope packages/*module*,但它只找到第一个模块。

我的 lerna 配置

{
  "packages": [
      "packages/*"
  ],
  "version": "0.0.1"
}

六边形,

我刚刚检查了我自己的 lerna monorepo,发现在 lerna 命令中使用 --scope 标志肯定是指在 package.json 中定义的名称.

有关 how the --scope flag works in lerna 的详细信息,请参阅此处。

所以,看看你如何命名上面的包,为了得到你的 module 包,你已经尝试过以下 glob 模式 should 工作...

--scope @nameSpaceScope/*module*

--scope @nameSpaceScope/+(*module*)

我什至尝试使用 https://globster.xyz/

为多个服务添加另一个选项:

--scope={service1,service2,...}