在lerna中使用glob --scope按软件包名称或目录名称进行过滤

时间:2019-12-18 00:01:01

标签: glob lerna

使用lerna时,我无法创建全局模式来查找具有通用命名约定的多个软件包。我是否应该在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 软件包运行命令。在这些示例中,我仅查找模块包 我已经尝试了以下问题:

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

获取任何内容的最接近的glob是--scope packages/*module*,但它只会找到第一个模块。

我的lerna配置

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

1 个答案:

答案 0 :(得分:0)

六边形

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

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

因此,请查看上面的软件包命名方式,以获取您的 module 软件包,您尝试过的以下glob模式应该起作用。 >

--scope @nameSpaceScope/*module*

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

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

尝试一下

enter image description here enter image description here