bob-esbuild-plugin

raw JSON →
4.0.0 verified Fri May 01 auth: no javascript

Rollup plugin that uses esbuild for fast transpilation and minification, integrated into the bob-esbuild build system. Current stable version is 4.0.0. It wraps esbuild's transform API and integrates with rollup, offering a simpler alternative to rollup-plugin-esbuild. Key differentiators: provides default behavior for TypeScript and JSX, automatic detection of tsconfig, and supports custom loaders. Part of the bob monorepo which includes bob-ts and bob-tsm. Released as needed, with recent patches focusing on TypeScript export ordering and package.json handling.

error Error: Cannot find module 'bob-esbuild-plugin'
cause Missing installation or wrong import path.
fix
Run npm install bob-esbuild-plugin, ensure package.json has it in dependencies.
error TypeError: esbuildPlugin is not a function
cause Using default import instead of named import.
fix
Change to import { esbuildPlugin } from 'bob-esbuild-plugin'
error RollupError: Could not resolve 'esbuild'
cause Missing esbuild peer dependency.
fix
Run npm install esbuild
breaking bob-esbuild-plugin v4 requires esbuild >=0.14.39 and rollup * (any version). Older versions may have incompatible APIs.
fix Update esbuild and rollup to compatible versions.
deprecated The 'transform' option from earlier versions is deprecated; use 'loaders' instead.
fix Replace transform options with loaders configuration.
gotcha bob-esbuild-plugin does not bundle TypeScript types; for type declarations, use bob-ts or bob-tsm separately.
fix Use bob-ts (buildCode) or bob-tsm (tsm) for type generation, or run tsc separately.
gotcha ESM-only package: require() will not work as a default import; always use named destructuring.
fix Use import or const { esbuildPlugin } = require(...)
npm install bob-esbuild-plugin
yarn add bob-esbuild-plugin
pnpm add bob-esbuild-plugin

Shows minimal setup to bundle a TypeScript file using esbuild transformation via rollup.

import { esbuildPlugin } from 'bob-esbuild-plugin';
import { rollup } from 'rollup';

async function build() {
  const bundle = await rollup({
    input: 'src/index.ts',
    plugins: [esbuildPlugin()]
  });
  await bundle.write({ dir: 'dist', format: 'esm' });
}

build().catch(console.error);