列出类似于lerna ls的NPM工作空间



我正在寻找一个类似于lerna ls的NPM命令,它可以打印出所有工作区。

例如,假设我在packages子目录中有package1package2,我的package.json如下所示:

"workspaces": [
"./packages/*"
]

我想要一份NPM7工作空间的列表。对于我期望的例子:

  • 软件包/软件包1
  • 包裹/包裹2

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

我想我可以使用npm ls -json来解析顶级依赖关系。然而,我希望有更好的方法?

npm@8:中有一种新方法

npm query .workspace | jq -r '.[].location'

返回预期结果:

packages/package1
packages/package2

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

所以现在我使用JQ。

示例:npm ls --production --depth 1 -json | jq -r '.dependencies[].resolved'

对于我的例子,这导致:

file:../../packages/package1
file:../../packages/package2

我不知道为什么它会在前面添加../../。所以为了进一步改进这一点:npm ls --production --depth 1 -json | jq -r '.dependencies[].resolved[11:]'返回预期结果:

packages/package1
packages/package2

我还在这里提交了一个功能请求:https://github.com/npm/cli/issues/4086

相关内容

  • 没有找到相关文章

最新更新