beesbuild
Version:
构建工具链
31 lines (30 loc) • 1.38 kB
JavaScript
import { Command, Option } from "commander";
import * as scripts from "../scripts/index.mjs";
import { booleanParser } from "../boolean-parser.mjs";
import * as variables from "../variables.mjs";
import { handleOptions, init } from "./utils.mjs";
const build = (program) => {
if (!(program instanceof Command)) {
program = init(variables).end();
}
program.command("build").description("\u6253\u5305\u9879\u76EE\uFF0C\u5E76\u5C06\u5176\u5B58\u50A8\u5728\u4EFB\u4F55\u53EF\u89C1\u7684\u76EE\u5F55\u4E2D").addOption(
new Option("--run-env <string>", "\u73AF\u5883").default("Browser").choices(["Browser", "Node"])
).option("-D, --dev [boolean]", "\u662F\u5426\u662F\u5F00\u53D1\u73AF\u5883", false).option("-S, --stub [boolean]", "\u662F\u5426\u662F\u5F00\u53D1\u73AF\u5883", false).option("--no-minify [boolean]", "\u751F\u4EA7\u73AF\u5883\u4E2D\u662F\u5426\u538B\u7F29").option("-C, --no-clean", "\u662F\u5426\u5220\u9664\u6253\u5305\u6587\u4EF6\u6216\u6587\u4EF6\u5939").action(async (options) => {
const { stub, minify, clean, dev } = options;
const opts = handleOptions(
program,
{
...options,
dev: booleanParser(dev),
stub: booleanParser(stub),
minify: booleanParser(minify),
clean: booleanParser(clean)
}
);
await scripts.build(opts);
});
return program;
};
export {
build
};