0

我想lerna list --json在节点脚本中获得 CLI 功能,以进行各种发布调整。我浏览了代码库,但找不到合适的 API 来完成正确的工作:

例子:

// process-monorepo-packages.js

const {listApi} = require('@lerna/some-package')

const packagesMetadata = listApi({json:true})

// TODO process packagesMetadata
function processPackages(){ /* ... */ }
4

1 回答 1

2

我已经尝试过@lerna/list,但从那里没有任何运气。

一种解决方法是使用该child_process模块生成一个 shell 并在该 shell 中运行命令,然后从它返回的内容中查询所有包的名称。

const {execSync} = require('child_process');

let output

try {
  output = execSync(`npx lerna ls --json`)
} catch (error) {
  console.info(`No local packages found.`)
  process.exit(0)
}

const packages = JSON.parse(output.toString()); // this will contain the list of the packages

于 2019-11-08T03:30:44.740 回答