UNPKG

@funny-ui/cli

Version:
41 lines (32 loc) 1.2 kB
import fse from "fs-extra"; import ora from "ora"; import { compileBundle, compileModule } from "../compiler/compileModule"; import { ES_DIR, LIB_DIR, UMD_DIR } from "../shared/constant"; import logger from "../shared/logger"; const { remove } = fse; export function removeDir() { return Promise.all([remove(LIB_DIR), remove(ES_DIR), remove(UMD_DIR)]); } export async function runTask(taskName: string, task: () => any) { const spinner = ora().start(`Compile ${taskName}`); try { await task(); spinner.succeed(`Compilation ${taskName} completed!`); } catch (error: any) { spinner.fail(`Compilation ${taskName} failed!`); logger.error(error.toString()); } } export async function compile() { process.env.NODE_ENV = "compile"; // 移除上次打包结果 await removeDir(); // 生成类型文件和高亮文件 // 编译成 es module process.env.BABEL_MODULE = "module"; await runTask("module", compileModule); // 根据 es module 入口文件,生成同时包含样式文件的 *.bundle.mjs, // 再根据它使用vite的build方法编译成commonjs、es、umd格式 process.env.BABEL_MODULE = ""; await runTask("bundle", compileBundle); }