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.

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.
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.
npm install eslint-remote-tester
yarn add eslint-remote-tester
pnpm add eslint-remote-tester

Shows creation of a configuration file with flat config (ESM), listing remote repos, extensions, and ignore patterns. Run via npx.

// 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