列出类似于 lerna ls 的 NPM 工作区

res*_*ead 6 npm npm-workspaces

我正在寻找类似于lerna ls打印所有工作区的 NPM 命令。

例如,假设我有一个子目录中的package1and ,我的 package.json 如下所示:package2packages

"workspaces": [
 "./packages/*"
]
Run Code Online (Sandbox Code Playgroud)

我想获取 NPM 7 工作区的列表。对于这个例子,我期望:

  • 包/包1
  • 包/包2

我希望npm ls -p --depth 0能做到这一点,但不幸的是它也打印出了其他依赖项。

我想我可以使用npm ls -json并解析出顶级依赖项。但是,我希望有更好的方法吗?

Jus*_*wis 8

有一种新方法npm@8

npm query .workspace | jq -r '.[].location'
Run Code Online (Sandbox Code Playgroud)

返回预期结果:

packages/package1
packages/package2
Run Code Online (Sandbox Code Playgroud)

仍然需要jq,但比以前稍微干净一些。