mkdist
Version:
Lightweight file-to-file transformer
134 lines (131 loc) • 3.14 kB
JavaScript
#!/usr/bin/env node
import { defineCommand, runMain } from 'citty';
import { resolve } from 'pathe';
import { m as mkdist } from './shared/mkdist.C0vF8Kdr.mjs';
import 'node:fs/promises';
import 'defu';
import 'node:stream';
import 'node:fs';
import 'esbuild';
import 'jiti';
import 'node:url';
import 'cssnano';
import 'autoprefixer';
import 'postcss';
import 'postcss-nested';
import 'mlly';
import 'node:module';
import 'semver';
import 'tinyglobby';
const name = "mkdist";
const version = "2.4.0";
const description = "Lightweight file-to-file transformer";
const main = defineCommand({
meta: {
name,
version,
description
},
args: {
dir: {
type: "positional",
description: "Project root directory",
default: "."
},
cwd: {
type: "string",
description: "Current working directory"
},
src: {
type: "string",
description: "Source directory relative to project root directory",
default: "src"
},
dist: {
type: "string",
description: "Destination directory relative to project root directory",
default: "dist"
},
clean: {
type: "boolean",
description: "Clean the destination directory",
default: true
},
pattern: {
type: "string",
description: "Pattern includes or excludes files",
default: "**"
},
format: {
type: "string",
description: "File format",
valueHint: "cjs|esm"
},
declaration: {
type: "boolean",
description: "Generate type declaration file",
default: false,
alias: ["d"]
},
ext: {
type: "string",
description: "File extension",
valueHint: "mjs|js|ts"
},
jsx: {
type: "string",
description: "Specify which JSX runtime to use",
valueHint: "transform|preserve|automatic"
},
jsxFactory: {
type: "string",
description: "JSX factory",
valueHint: "h|React.createElement"
},
jsxFragment: {
type: "string",
description: "JSX fragment",
valueHint: "Fragment|React.Fragment"
},
loaders: {
type: "string",
description: "Loaders",
valueHint: "js|vue|sass"
},
minify: {
type: "boolean",
description: "Minify output files",
default: false
},
target: {
type: "string",
description: "Target environment (esbuild)"
}
},
async run({ args }) {
const { writtenFiles } = await mkdist({
rootDir: resolve(args.cwd || process.cwd(), args.dir),
srcDir: args.src,
distDir: args.dist,
cleanDist: args.clean,
format: args.format,
pattern: args.pattern,
ext: args.ext,
declaration: args.declaration,
loaders: args.loaders?.split(","),
esbuild: {
jsx: args.jsx,
jsxFactory: args.jsxFactory,
jsxFragment: args.jsxFragment,
minify: args.minify,
target: args.target
}
});
console.log(writtenFiles.map((f) => `- ${f}`).join("\n"));
process.exit(0);
}
});
runMain(main).catch((error) => {
console.error(error);
process.exit(1);
});