esbuild-plugin-rdi
raw JSON → 0.0.0 verified Fri May 01 auth: no javascript
An esbuild plugin that removes duplicate require statements from minified builds, reducing bundle size by eliminating redundant module imports. Version 0.0.0 is the initial release. It integrates seamlessly with esbuild and tsup, supporting TypeScript out of the box. Key differentiator: focuses specifically on duplicate require removal in esbuild, filling a niche gap in build optimization. Development is active with no breaking changes yet.
Common errors
error Error: Cannot find module 'esbuild-plugin-rdi' ↓
cause Package installed under deprecated name 'ep-rdi' or not installed at all.
fix
Install with correct name: npm install esbuild-plugin-rdi
error SyntaxError: Named export 'rdiPlugin' not found ↓
cause Trying to use require() instead of import.
fix
Use ES module import syntax: import { rdiPlugin } from 'esbuild-plugin-rdi'
error TypeError: rdiPlugin is not a function ↓
cause Forgetting to invoke rdiPlugin() in plugins array.
fix
Use it as rdiPlugin() not just rdiPlugin
Warnings
gotcha Plugin only works with CJS output format; does not affect ESM builds. ↓
fix Ensure esbuild format is 'cjs'.
gotcha Plugin may remove require statements that are not truly duplicates if they have different runtime effects. ↓
fix Manually verify that removed requires are safe.
deprecated Package name 'ep-rdi' is deprecated; use 'esbuild-plugin-rdi' instead. ↓
fix Update npm package name to 'esbuild-plugin-rdi'.
Install
npm install ep-rdi yarn add ep-rdi pnpm add ep-rdi Imports
- rdiPlugin wrong
const rdiPlugin = require('esbuild-plugin-rdi')correctimport { rdiPlugin } from 'esbuild-plugin-rdi' - default wrong
const rdiPlugin = require('esbuild-plugin-rdi')correctimport rdiPlugin from 'esbuild-plugin-rdi' - PluginOptions
import type { PluginOptions } from 'esbuild-plugin-rdi'
Quickstart
import { rdiPlugin } from 'esbuild-plugin-rdi';
import * as esbuild from 'esbuild';
await esbuild.build({
entryPoints: ['src/index.ts'],
outfile: 'dist/bundle.js',
bundle: true,
minify: true,
format: 'cjs',
plugins: [rdiPlugin()]
});