cadb
Version:
安卓/鸿蒙系统截图/录屏工具
101 lines (94 loc) • 2.23 kB
JavaScript
/**
* Created by Niki on 2025/5/7 20:42.
* Email: m13296644326@163.com
*/
const {exec} = require('child_process');
const {logRed, logGreen, shellConfigs} = require('../constants');
const hvigorwShellPath =
'/Applications/DevEco-Studio.app/Contents/tools/hvigor/bin/hvigorw';
const devEcoSdkHome = '/Applications/DevEco-Studio.app/Contents/sdk';
function buildHar(cwd, harName) {
const cmdParams = [
'assembleHar',
'-p',
'product=default',
'-p',
`module="${harName}@default"`,
'-p',
'debuggable=false',
'--no-daemon',
'--no-parallel',
'--no-incremental',
].join(' ');
return runBuildCmd(cwd, cmdParams, 'BUILD SUCCESSFUL in ');
}
function buildHar2(cwd, harName) {
const cmdParams = [
'--mode',
'module',
'-p',
'product=default',
'-p',
`module="${harName}@default"`,
'assembleHar',
'--analyze=normal',
'--parallel',
'--incremental',
'--daemon',
].join(' ');
return runBuildCmd(cwd, cmdParams, 'BUILD SUCCESSFUL in ');
}
/*
* 等效于点击ide的"sync now"按钮
* */
function doProjectSyncNow(cwd) {
const cmdParams = [
'--sync',
'-p',
'product=default',
'-p',
'buildMode=debugWithFlutterRelease',
'--analyze=normal',
'--parallel',
'--incremental',
'--daemon',
].join(' ');
return runBuildCmd(cwd, cmdParams, 'Finished ::init... after ');
}
function runBuildCmd(cwd, cmdParams, successTagStr) {
return new Promise(resolve => {
const res = exec(
`export DEVECO_SDK_HOME=${devEcoSdkHome} && ${hvigorwShellPath} ${cmdParams}`,
{
...shellConfigs,
cwd,
},
);
const {stderr, stdout} = res;
let buildSuccess = false;
stderr.on('data', err => {
console.log(err.toString());
});
stdout.on('data', d => {
const text = d.toString();
console.log(text);
if (text.includes(successTagStr)) {
buildSuccess = true;
}
});
stdout.on('end', () => {
if (buildSuccess) {
logGreen('编译成功');
resolve(true);
} else {
logRed('编译失败');
resolve(false);
}
});
});
}
module.exports = {
buildHar,
buildHar2,
doProjectSyncNow,
};