eslint-remote-tester
raw JSON → 4.0.4 verified Sat Apr 25 auth: no javascript
CLI tool for running ESLint rules against multiple remote repositories simultaneously. Current stable version is 4.0.4, released on an irregular cadence. Key differentiators: designed for regression testing of new or modified ESLint rules across many real-world codebases; integrates with CI via GitHub Actions; supports both flat config (eslint@9) and legacy config; ESM-only since v4. Unlike local linting tools, it clones and lints repositories from GitHub to catch false positives, crashes, and unexpected behavior before a rule is published. Requires peer dependencies eslint@>=9, importx@>=0.3.5, jiti@>=1.
Common errors
error Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: ...\node_modules\eslint-remote-tester\dist\index.js ↓
cause Attempting to require() an ESM-only package with CommonJS require().
fix
Switch to import syntax: import eslintRemoteTester from 'eslint-remote-tester' or use dynamic import().
error TypeError: eslintConfig is not iterable ↓
cause The eslintConfig option expects an array in v4.0.4+, but a single config object was provided.
fix
Wrap your eslintConfig in an array: eslintConfig: [config].
error Error: Cannot find module 'jiti' ↓
cause jiti is a peer dependency required for loading TypeScript config files, but not installed.
fix
Install jiti: npm install --save-dev jiti
error Error: Failed to load config from eslint-remote-tester.config.ts ↓
cause TypeScript config file cannot be loaded if TS support dependencies are missing or misconfigured.
fix
Ensure jiti@>=2 or importx@>=0.3.5 is installed. For jiti@^1, upgrade to v2.
Warnings
breaking Package converted to ESM-only in v4.0.0. CommonJS require() will fail. ↓
fix Use import syntax or dynamic import(). Ensure your project's package.json has "type": "module" or use .mjs extension.
breaking Dropped support for eslint@<9 in v4.0.0. eslint@9 with FlatConfig is required. ↓
fix Upgrade eslint to >=9 and migrate to FlatConfig. Use eslintConfig array instead of .eslintrc.
breaking The eslintConfig option changed from a single config object to an array in v4.0.4. ↓
fix Wrap your eslintConfig in an array, e.g. eslintConfig: [config].
deprecated TypeScript config loading via jiti@^1 is deprecated; jiti@^2 or importx@>=0.3.5 recommended. ↓
fix Install jiti@>=2 or importx@>=0.3.5 as a peer dependency. jiti@^2 support fixed in v4.0.3.
gotcha The underlying git integration requires git CLI to be installed and callable as 'git'. ↓
fix Ensure git is installed and on the PATH. Test with 'git --version'.
gotcha Loading config on Windows could fail before v4.0.1. ↓
fix Upgrade to v4.0.1 or later to fix Windows path issues.
Install
npm install eslint-remote-tester yarn add eslint-remote-tester pnpm add eslint-remote-tester Imports
- Config wrong
import { Config } from 'eslint-remote-tester'correctimport type { Config } from 'eslint-remote-tester' - default (main CLI) wrong
const eslintRemoteTester = require('eslint-remote-tester')correctimport eslintRemoteTester from 'eslint-remote-tester' - runProgrammatically wrong
import runProgrammatically from 'eslint-remote-tester'correctimport { runProgrammatically } from 'eslint-remote-tester'
Quickstart
// Install: npm install --save-dev eslint-remote-tester eslint
// Create eslint-remote-tester.config.js (ESM)
import js from '@eslint/js';
/** @type {import('eslint-remote-tester').Config} */
const config = {
repositories: ['mui-org/material-ui', 'reach/reach-ui'],
extensions: ['js', 'jsx', 'ts', 'tsx'],
eslintConfig: [js.configs.recommended],
pathIgnorePattern: `(${[
'node_modules',
'\\/\\.',
'test-results',
'docs',
].join('|')})`,
};
export default config;
// Run CLI:
// npx eslint-remote-tester