esbuild-plugin-ignore

raw JSON →
1.1.1 verified Mon Apr 27 auth: no javascript

esbuild-plugin-ignore (v1.1.1) is a plugin for esbuild that allows ignoring specific dependencies during bundling, similar to Webpack's IgnorePlugin. It provides a straightforward way to exclude modules based on regular expressions matching resource and context paths. The package supports both ESM and CommonJS, and is actively maintained. Key differentiators: simple API, no external dependencies, works with esbuild's plugin system. Version 1.1.1 is the latest stable release with no recent changes.

error Error: Build failed with 1 error: error: Could not resolve 'pg-native'
cause The module 'pg-native' is being required but esbuild cannot find it because it's not installed or is ignored incorrectly.
fix
Either install the missing dependency or add it to the ignorePlugin rule with correct resourceRegExp.
error TypeError: ignorePlugin is not a function
cause Importing the plugin incorrectly: using default import when named import is expected, or vice versa.
fix
Use named import: import { ignorePlugin } from 'esbuild-plugin-ignore'
error Cannot find module 'esbuild-plugin-ignore'
cause Package not installed or not in node_modules.
fix
Run npm install esbuild-plugin-ignore or yarn add esbuild-plugin-ignore.
gotcha Plugin ignores modules based on RegExp; over-broad patterns may unintentionally exclude necessary dependencies.
fix Use specific resourceRegExp and contextRegExp patterns matching only the modules you intend to ignore.
gotcha Plugin does not check if ignored modules are actually required; may produce runtime errors if they are missing.
fix Ensure ignored modules are not actually used in your code or provide polyfills as needed.
gotcha The plugin matches both resource and context; if contextRegExp is not specified, it defaults to '/.*/' matching any context.
fix Explicitly define contextRegExp to avoid unintended matches.
npm install esbuild-plugin-ignore
yarn add esbuild-plugin-ignore
pnpm add esbuild-plugin-ignore

Configures esbuild with ignorePlugin to exclude certain modules (e.g., pg-native, tedious) from bundling using Webpack-like ignore rules.

import { ignorePlugin } from 'esbuild-plugin-ignore';
import * as esbuild from 'esbuild';

await esbuild.build({
  entryPoints: ['src/index.js'],
  bundle: true,
  outfile: 'dist/bundle.js',
  plugins: [
    ignorePlugin([
      {
        resourceRegExp: /pg-native$/,
        contextRegExp: /node_modules\/sequelize|node_modules\/pg/
      },
      {
        resourceRegExp: /tedious|sqlite3|mariadb$/,
        contextRegExp: /node_modules\/sequelize/
      }
    ])
  ]
});