UNPKG

1.5 kBJavaScriptView Raw
1const chalk = require("chalk");
2const program = require("commander");
3const microbundle = require("microbundle");
4
5const stdout = console.log.bind(console);
6const stderr = console.error.bind(console);
7
8function logError(err) {
9 const error = err.error || err;
10 const description = `${error.name ? error.name + ": " : ""}${error.message || error}`;
11 const message = error.plugin ? `(${error.plugin} plugin) ${description}` : description;
12
13 stderr(chalk.bold.red(message));
14
15 if (error.loc) {
16 stderr();
17 stderr(`at ${error.loc.file}:${error.loc.line}:${error.loc.column}`);
18 }
19
20 if (error.frame) {
21 stderr();
22 stderr(chalk.dim(error.frame));
23 } else if (err.stack) {
24 const headlessStack = error.stack.replace(message, "");
25 stderr(chalk.dim(headlessStack));
26 }
27
28 stderr();
29}
30
31program
32 .option("-u, --umd <name>", "Specify name exposed in UMD builds")
33 .option("-o, --output <folder>", "Directory to place build files into")
34 .parse(process.argv);
35
36const type = program.args[0] || "module";
37
38const opts = {
39 name: program.umd,
40 output: program.output,
41 format: "es,cjs,umd",
42 cwd: ".",
43 target: "node",
44 compress: true,
45 sourcemap: true,
46 raw: false,
47};
48
49if (type === "module") {
50 microbundle(opts)
51 .then(output => {
52 if (output != null) stdout(output);
53 if (!opts.watch) process.exit(0);
54 })
55 .catch(err => {
56 process.exitCode = (typeof err.code === "number" && err.code) || 1;
57 logError(err);
58 process.exit();
59 });
60}