通过lerna api命令获取“ lerna list”命令

时间:2018-12-27 20:25:42

标签: lerna monorepo

我想在节点脚本中获得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(){ /* ... */ }

1 个答案:

答案 0 :(得分:1)

我已经尝试过@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

相关问题