Skip to content

esbuild Plugin

The esbuild plugin provides the same static CSS extraction as the Vite plugin, using esbuild’s onResolve and onLoad hooks.

Terminal window
bun add typewritingclass
bun add -d typewritingclass-esbuild typewritingclass-compiler
build.ts
import * as esbuild from 'esbuild'
import twcEsbuildPlugin from 'typewritingclass-esbuild'
await esbuild.build({
entryPoints: ['src/main.tsx'],
bundle: true,
outdir: 'dist',
plugins: [twcEsbuildPlugin()],
})
twcEsbuildPlugin({
strict: true, // default: true
})

See Strict Mode for details.

Same as Vite — import in your entry file:

import 'virtual:twc.css'
const ctx = await esbuild.context({
entryPoints: ['src/main.tsx'],
bundle: true,
outdir: 'dist',
plugins: [twcEsbuildPlugin()],
})
await ctx.watch()
FeatureViteesbuild
Packagetypewritingclass-compilertypewritingclass-esbuild
HMRFullVia watch/serve
Source mapsMagicStringesbuild built-in
DiagnosticsBrowser overlayTerminal output

Both use the same Rust compiler and produce identical CSS.