CLI Configuration
Minimajs is configured via a minimajs.config.ts (or .js) file in the root of your project.
ts
import { defineConfig } from "@minimajs/cli";
export default defineConfig({
entry: ["src/index.ts", "src/**/module.ts"],
outdir: "dist",
});defineConfig also accepts a factory receiving { mode, dev } — where mode is "dev" | "build" | "start" and dev is shorthand for mode === "dev":
ts
import { defineConfig } from "@minimajs/cli";
export default defineConfig(({ dev, mode }) => ({
sourcemap: dev,
minify: mode === "build",
envFile: ".env",
}));Options
| Option | Type | Default | Description |
|---|---|---|---|
entry | string[] | ["src/index.ts", "src/**/module.ts"] | Entry points or glob patterns |
outdir | string | "dist" | Output directory |
clean | boolean | true | Clean output directory before each build |
check | boolean | true | Run TypeScript type checking in watch mode |
minify | boolean | false | Minify output |
sourcemap | boolean | false | Emit source maps |
tsconfig | string | "tsconfig.json" | Path to tsconfig |
run | boolean | false | Run the output after build |
import | string[] | [] | Additional entry points to import at startup |
loader | Record<string, Loader> | {} | Custom esbuild loaders |
killSignal | NodeJS.Signals | "SIGTERM" | Signal used to stop the running process |
esbuild | EsbuildOverrides | — | Raw esbuild options (merged last) |
Plugins
Plugins are registered via a named plugins export — separate from defineConfig. The same CliPlugin type covers all extension points: esbuild entry/setup, CLI commands (root-level), and generators (under ./app add).
ts
// minimajs.config.ts
import { defineConfig, definePlugins } from "@minimajs/cli";
import { queuePlugin } from "@myapp/queue-plugin";
export default defineConfig(({ dev }) => ({ sourcemap: dev }));
export const plugins = definePlugins([queuePlugin()]);
// or factory: definePlugins(({ dev }) => [queuePlugin({ verbose: dev })])See Plugins for the full guide — esbuild hooks, CLI commands, generators, and publishing.
esbuild Passthrough
Pass raw esbuild options that are merged into the final build config. Managed options (entryPoints, outdir, plugins, metafile, bundle, platform, format, splitting) cannot be overridden.
ts
import { defineConfig } from "@minimajs/cli";
export default defineConfig({
esbuild: {
define: {
"process.env.VERSION": JSON.stringify("1.0.0"),
},
banner: {
js: "// generated by minimajs",
},
},
});