“Lerna List”和“Lerna Changed”返回0包

flo*_*olu 4 lerna monorepo yarn-workspaces npm-package

要旨

我有一个 monorepo,我正在使用yarn 工作区lerna来管理它。直到现在我都没有问题。我需要知道自上次发布以来所有更改的包。

问题

所以我运行lerna changeddocs),但这是它返回的内容:

info cli using local version of lerna
lerna notice cli v3.16.4
lerna info Looking for changed packages since v0.3.0
lerna info No changed packages found
Run Code Online (Sandbox Code Playgroud)

同样,lerna 在运行时也找不到任何包lerna listdocs):

info cli using local version of lerna
lerna notice cli v3.16.4
lerna success found 0 packages
Run Code Online (Sandbox Code Playgroud)

好像有什么东西坏了。但是我在我的设置中找不到任何问题。

设置

文件树

??? lerna.json
??? package.json
??? packages
?   ??? enums
?   ??? event-sourcing
?   ??? models
?   ??? utils
??? services
    ??? consumer
    ??? frontend
    ??? gateway
    ??? ideas

Run Code Online (Sandbox Code Playgroud)

lerna.json

{
  "packages": [
    "packages/*",
    "services/*"
  ],
  "version": "0.3.0",
  "useWorkspaces": "true"
}
Run Code Online (Sandbox Code Playgroud)

包.json

{
  "name": "cents-ideas",
  "version": "0.0.0",
  "workspaces": [
    "packages/*",
    "services/*"
  ],
  "private": true,
  "devDependencies": {
    "lerna": "^3.16.4",
    "npm-run-all": "^4.1.5",
    "rimraf": "^3.0.0",
    "typescript": "^3.6.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

整个存储库都在GitHub 上,如果你想仔细看看它。

flo*_*olu 28

解决方法很简单。由于我所有的包"private": true在它们的package.json文件中都有一个,我需要添加--all标志。

lerna changed --all
Run Code Online (Sandbox Code Playgroud)
lerna list -all
Run Code Online (Sandbox Code Playgroud)

  • 感谢您分享这个。如果所有包都是私有的,什么被视为“发布”?我也有同样的情况,我的所有包裹都标记为私人包裹。现在,对于下一次部署,我需要知道更改的包。我们该怎么做呢?我们如何在这里标记发布? (2认同)