Skip to content

developit/microbundle-2

Repository files navigation

Microbundle 2

What if microbundle could figure out how to bundle your library based on the "exports" field you already have to define in your package.json?

And what if it was also absurdly fast, and one 500kb file with a single native dependency?

npm i -g microbundle-2
# or
npx microbundle-2

This is a reimplementation of Microbundle built on ESBuild.

help

Simple Example

You write a package.json that looks like this:

{
  "name": "simple",
  "type": "module",
  "exports": {
	"import": "./dist/lib.js",
	"default": "./dist/lib.cjs"
  }
}
simple example package

Multiple entries

Just define your package exports the way you already have to for Node/Vite/etc:

{
  "name": "multi-entry",
  "type": "module",
  "exports": {
    ".": {
      "types": "./dist/lib.d.ts",
      "import": "./dist/lib.js",
      "default": "./dist/lib.cjs"
    },
    "./a": {
      "types": "./dist/a.d.ts",
      "import": "./dist/a.js",
      "default": "./dist/a.cjs"
    },
    "./b": {
      "types": "./dist/b.d.ts",
      "import": "./dist/b.js",
      "default": "./dist/b.cjs"
    }
  }
}
simple multi-entry package example

This example has a dynamic import, which you can see produced a ./c chunk. Both the ESM and CJS versions work the same way!

Wildcards/patterns

Wildcard/pattern exports are also supported:

{
  "name": "patterns",
  "type": "module",
  "exports": {
    ".": {
      "types": "./build/index.d.ts",
      "import": "./build/index.js",
      "default": "./build/index.cjs"
    },
    "./lib/*": {
      "types": "./build/lib/*.d.ts",
      "import": "./build/lib/*.js",
      "default": "./build/lib/*.cjs"
    },
    "./components/*": {
      "source": "./lib/components/*.tsx",
      "types": "./build/components/*.d.ts",
      "import": "./build/components/*.js",
      "default": "./build/components/*.cjs"
    }
  }
}
complex multi-entry example using wildcard/pattern exports

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published