0.3.2 • Published 18 days ago

esbuild-plugin-autoload v0.3.2

Weekly downloads
-
License
-
Repository
github
Last release
18 days ago

esbuild-plugin-autoload

This esbuild/Bun bundler plugin helps to use libraries for autoload endpoints, command and etc. At the build stage, it obtains what needs to be import-ed and includes it in the final file

!IMPORTANT You need Bun or Node@>=22 to run this plugin

Bun build usage

// @filename: build.ts
import { autoload } from "esbuild-plugin-autoload"; // default import also supported

await Bun.build({
    entrypoints: ["src/index.ts"],
    target: "bun",
    outdir: "out",
    plugins: [autoload()],
}).then(console.log);

Then, build it with bun build.ts and run with bun out/index.ts

Bun compile usage

You can bundle and then compile it into a single executable binary file

import { autoload } from "esbuild-plugin-autoload"; // default import also supported

await Bun.build({
    entrypoints: ["src/index.ts"],
    target: "bun",
    outdir: "out",
    plugins: [autoload()],
}).then(console.log);

await Bun.$`bun build --compile out/index.js`;

!WARNING You cannot use it in bun build --compile mode without extra step (Feature issue)

Options

KeyTypeDefaultDescription
pattern?string"**\/*.{ts,tsx,js,jsx,mjs,cjs}"Glob patterns
directory?string"./src/routes"The folder where something that will be autoloaded are located
debug?booleanfalseDebug mode, will log generated code

You can also pass the directory by the first argument instead of an object with full options

await Bun.build({
    entrypoints: ["src/index.ts"],
    target: "bun",
    outdir: "out",
    plugins: [autoload("./src/commands")],
}).then(console.log);

esbuild usage

// @filename: build.ts
import { autoload } from "esbuild-plugin-autoload"; // default import also supported
import esbuild from "esbuild";

await esbuild
    .build({
        entrypoints: ["src/index.ts"],
        outdir: "out",
        bundle: true,
        plugins: [autoload()],
    })
    .then(console.log);

Then, build it with bunx tsx build.ts and run with node out/index.ts

Supported autoload-ers

Sadly, this plugin can only work with supported libraries.

TODO:

  • Think more about multiple plugins usage with different CWD
  • Rewrite to unplugin
0.3.2

18 days ago

0.3.1

2 months ago

0.3.0

2 months ago

0.2.1

7 months ago

0.2.0

8 months ago

0.1.2

8 months ago

0.1.1

8 months ago

0.1.0

8 months ago