【问题标题】:using glob with lerna --scope filtering by package name or directory name使用 glob 和 lerna --scope 按包名或目录名过滤
【发布时间】:2019-12-18 00:01:01
【问题描述】:

使用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 包运行命令。在这些示例中,我只寻找模块包 我尝试过 glob:

--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 bootstrap --scope prefix-platform-* 吗?

标签: glob lerna


【解决方案1】:

六边形,

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

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

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

--scope @nameSpaceScope/*module*

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

我什至甚至使用https://globster.xyz/来试用它们

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多