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