{"id":25335,"library":"esbuild-plugin-eslint-hybrid","title":"esbuild-plugin-eslint-hybrid","description":"esbuild plugin to integrate ESLint for linting code during bundling. Version 1.0.4 (latest). Supports both ESM and CJS, unlike the original esbuild-plugin-eslint which is ESM-only. Requires Node >=18.16.0, esbuild ^0.18.2, and eslint ^8.42.0 as peer dependencies. Provides filter, throwOnError, throwOnWarning, and fix options.","status":"active","version":"1.0.4","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","typescript"],"install":[{"cmd":"npm install esbuild-plugin-eslint-hybrid","lang":"bash","label":"npm"},{"cmd":"yarn add esbuild-plugin-eslint-hybrid","lang":"bash","label":"yarn"},{"cmd":"pnpm add esbuild-plugin-eslint-hybrid","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for the esbuild plugin architecture","package":"esbuild","optional":false},{"reason":"peer dependency to perform linting","package":"eslint","optional":false}],"imports":[{"note":"In CJS, the plugin is the default export, so you must use .default","wrong":"const eslint = require('esbuild-plugin-eslint-hybrid')","symbol":"default (eslint)","correct":"import eslint from 'esbuild-plugin-eslint-hybrid'"},{"note":"CJS require returns an object with default export; without .default it will be undefined","wrong":"const eslint = require('esbuild-plugin-eslint-hybrid')","symbol":"default (CJS)","correct":"const eslint = require('esbuild-plugin-eslint-hybrid').default"},{"note":"Type exports are available for TypeScript users","wrong":"import { ESLintPluginOpts } from 'esbuild-plugin-eslint-hybrid'","symbol":"type (TypeScript)","correct":"import type { ESLintPluginOpts } from 'esbuild-plugin-eslint-hybrid'"}],"quickstart":{"code":"import { build } from 'esbuild';\nimport eslint from 'esbuild-plugin-eslint-hybrid';\n\nawait build({\n  entryPoints: ['src/app.ts'],\n  outfile: 'dist/app.js',\n  bundle: true,\n  plugins: [\n    eslint({\n      filter: /\\.(?:jsx?|tsx?)$/,\n      throwOnError: true,\n      throwOnWarning: false,\n      fix: false,\n    }),\n  ],\n});","lang":"typescript","description":"Shows how to use the plugin with esbuild in ESM, including filter and throwOnError options."},"warnings":[{"fix":"Use const eslint = require('esbuild-plugin-eslint-hybrid').default;","message":"In CommonJS, require returns an object; you must use .default to get the plugin function.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Switch to esbuild-plugin-eslint-hybrid for CJS compatibility.","message":"The original esbuild-plugin-eslint is deprecated in favor of this hybrid plugin if you need CJS support.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Pass ignorePatterns in the options object to the ESLint constructor.","message":"The plugin does not automatically respect .eslintignore; you must configure ignores in ESLint options.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use const eslint = require('esbuild-plugin-eslint-hybrid').default;","cause":"In CJS, not accessing .default from require.","error":"TypeError: eslint is not a function"},{"fix":"Run npm install esbuild-plugin-eslint-hybrid --save-dev","cause":"Missing dependency.","error":"Error: Cannot find module 'esbuild-plugin-eslint-hybrid'"},{"fix":"Ensure you call eslint(opts) and pass the returned object: plugins: [eslint(opts)]","cause":"Passing an undefined or incorrect plugin to esbuild.","error":"Error: The plugin must be a function or an object with a 'name' property"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}