如何使用类似lerna ls的NPM命令列出所有NPM 7 workspaces
方法1:适配npm 7+的原生ls命令
直接给npm ls加上--workspaces(简写-ws)参数即可过滤仅输出workspace包,不会混入其他第三方依赖:
npm ls -ws --depth 0 -p
输出结果和要求完全一致,每行对应一个workspace的相对路径:
packages/package1 packages/package2
参数说明:
-ws/--workspaces:限定命令仅作用于当前项目的所有workspace--depth 0:不展开展示子依赖-p:输出parseable格式的纯路径,去掉npm ls的树形装饰和版本信息
方法2:npm 8.3.0+ 更干净的query方案
如果你的npm版本≥8.3.0,可以用更精准的npm query命令直接获取workspace列表,配合jq可以得到无任何多余输出的路径清单:
# 直接输出所有workspace的元数据JSON npm query .workspace # 仅提取路径输出 npm query .workspace | jq -r '.[].location'
这个方法不需要额外过滤冗余内容,返回结果更稳定。
内容的提问来源于stack exchange,提问作者restfulhead
相关产品推荐
相关产品推荐

