Registry / devops / esbuild-plugin-eslint

esbuild-plugin-eslint

JSON →
library0.3.12jsnpmunverified

Integrates ESLint linting into esbuild bundles as a plugin. Current stable version is 0.3.12, requires Node >=18, esbuild >=0.20, and ESLint ^8 || ^9. Provides configurable options like filter, throwOnError, throwOnWarning, and fix. Ships TypeScript types and is actively maintained. Differentiators: lightweight, supports modern ESLint flat config, and works seamlessly with esbuild's onLoad hooks.

npm install esbuild-plugin-eslint
INSTALL
IMPORT
SIG · ESBUILD-PLUGIN-ESL
E
esbuild-plugin-eslint
devopsjavascriptv0.3.12
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

eslint
import eslint from 'esbuild-plugin-eslint'
const eslint = require('esbuild-plugin-eslint')
Default ESM export only; CJS require not supported in v0.3+.
type EsbuildPluginEslintOptions
import type { EsbuildPluginEslintOptions } from 'esbuild-plugin-eslint'
Type import for configuration options.
build (esbuild)
import { build } from 'esbuild'
esbuild is a peer dependency; must be imported separately.

Shows minimal setup using esbuild with the eslint plugin, filtering JS/TS files and throwing on errors.

import { build } from 'esbuild'; import eslint from 'esbuild-plugin-eslint'; await build({ entryPoints: ['src/index.js'], outfile: 'dist/bundle.js', bundle: true, plugins: [ eslint({ filter: /\.(?:jsx?|tsx?|mjs|cjs)$/, throwOnError: true, fix: true }) ] }); console.log('Build complete');
Debug
Known issues
breakingDropped support for Node <18, esbuild <0.20, and eslint <8 in v0.3.0
fix
Upgrade Node to >=18, esbuild to >=0.20, and eslint to ^8 || ^9.
affects: >=0.3.0
breakingDefault export changed from CommonJS to ESM in v0.3.0 – require() no longer works
fix
Use import eslint from 'esbuild-plugin-eslint' instead of require().
affects: >=0.3.0
gotchaOption 'include' deprecated in favor of 'filter' in v0.2.0
fix
Rename include to filter; note that filter accepts a RegExp, not a string.
affects: >=0.2.0
gotchaPlugin only runs on files matching the filter regex; files outside filter (e.g., .css) are not linted
fix
Explicitly set filter to /.*/ to lint all files, or adjust regex to cover desired extensions.
affects: >=0.1.0
deprecatedOption 'formats' was removed; use eslint's built-in configuration for format in v0.3.0
fix
Remove formats option; configure output format via ESLint's --format or formatter options.
affects: >=0.3.0
Errors
Common errors & fixes
Cannot find module 'esbuild-plugin-eslint'
Package not installed or symlink issue
fix
npm install esbuild-plugin-eslint eslint --save-dev
The plugin 'eslint' must be a function
Using require() in ESM context
fix
Use import eslint from 'esbuild-plugin-eslint'
TypeError: eslint is not a function
Incorrect import (e.g., default import syntax used with CJS module)
fix
Ensure you are using import eslint from 'esbuild-plugin-eslint' in an ESM project
Upgrade
Version history
0.3.12latest on npm
Audit
Dependencies
esbuildrequiredPeer dependency required for plugin to function.
eslintrequiredPeer dependency required for linting.
Agent activity
2 hits · last 30 days
node
2
Resources
esbuild-plugin-eslint — npm install esbuild-plugin-eslint · libregistry