UNPKG

mkdist

Version:

Lightweight file-to-file transformer

136 lines (132 loc) 3.19 kB
#!/usr/bin/env node 'use strict'; const citty = require('citty'); const pathe = require('pathe'); const make = require('./shared/mkdist.BiJXIYay.cjs'); require('node:fs/promises'); require('defu'); require('node:stream'); require('node:fs'); require('esbuild'); require('jiti'); require('node:url'); require('cssnano'); require('autoprefixer'); require('postcss'); require('postcss-nested'); require('mlly'); require('node:module'); require('semver'); require('tinyglobby'); const name = "mkdist"; const version = "2.4.0"; const description = "Lightweight file-to-file transformer"; const main = citty.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 make.mkdist({ rootDir: pathe.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); } }); citty.runMain(main).catch((error) => { console.error(error); process.exit(1); });