Registry / testing / eslint-config-canonical

eslint-config-canonical

JSON →
library47.4.2jsnpmunverified

A comprehensive ESLint shareable config with 1,000+ rules (40% auto-fixable) and custom ESLint plugin. Current stable version: 47.4.2. Released frequently (10+ versions in recent months). Key differentiators: includes auto-detection ruleset that only applies relevant style guides based on project files, supports many frameworks (React, Next.js, TypeScript, GraphQL, Lodash, etc.) and tools (Jest, Vitest, Mocha, AVA). Requires ESLint ^9 and is ESM-only. No CJS support. Custom rules in eslint-plugin-canonical.

npm install eslint-config-canonical
INSTALL
IMPORT
SIG · ESLINT-CONFIG-CANO
E
eslint-config-canonical
testingjavascriptv47.4.2
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.

auto
import auto from 'eslint-config-canonical/auto';
const auto = require('eslint-config-canonical/auto');
ESM-only since v47. No CJS support. Use default import for rulesets.
configs
import * as configs from 'eslint-config-canonical';
const configs = require('eslint-config-canonical');
ESM-only. Named exports are deprecated; use specific ruleset paths like 'eslint-config-canonical/react' instead.
typescript
import typescript from 'eslint-config-canonical/typescript';
import { typescript } from 'eslint-config-canonical';
Each ruleset is a default export from its own file. Use the path /typescript, /react, etc.

Shows how to use the auto ruleset with typescript-eslint in an ESLint flat config file.

// eslint.config.ts import auto from 'eslint-config-canonical/auto'; import tseslint from 'typescript-eslint'; export default tseslint.config( auto, // Add custom overrides or other configs { rules: { 'canonical/filename-match-regex': 'off', // Example override }, }, );
Debug
Known issues
breakingESM-only in v47. CommonJS require() will fail with ERR_REQUIRE_ESM.
fix
Switch to ESM imports. If using CommonJS, use dynamic import or stay on v46.
affects: >=47.0.0
deprecatedNamed exports (e.g., import { react } from 'eslint-config-canonical') are deprecated.
fix
Use path imports: import react from 'eslint-config-canonical/react';
affects: >=47.0.0
gotchaauto ruleset uses overrides based on detected files; may not pick up all frameworks in monorepos.
fix
Explicitly include framework-specific configs (e.g., react, next) in overrides with explicit file patterns.
affects: >=45.0.0
breakingRequires ESLint ^9. Flat config is mandatory; no support for .eslintrc.
fix
Migrate to ESLint 9 flat config. See ESLint migration guide.
affects: >=47.0.0
deprecatedThe canonical/ava, canonical/mocha, and canonical/jest configs may be dropped in future versions in favor of vitest.
fix
Use canonical/vitest if possible, or copy the rules into your own config.
affects: >=47.0.0
Errors
Common errors & fixes
Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/node_modules/eslint-config-canonical/auto.js not supported.
Using CommonJS require() with v47 which is ESM-only.
fix
Use import syntax or set "type": "module" in package.json. Alternatively use dynamic import: const auto = (await import('eslint-config-canonical/auto')).default;
Configuration for rule "canonical/filename-match-regex" is invalid. Value "string" is not a valid severity.
Passing a string like 'off' without quotes or as wrong type globally.
fix
Use the correct severity: "off", "warn", or "error" as a string, or use number 0, 1, 2.
Could not find plugin "canonical" in config.
Missing eslint-plugin-canonical or not loaded properly.
fix
Ensure eslint-plugin-canonical is installed as a devDependency. In flat config, use plugins: { canonical: require('eslint-plugin-canonical') } or import.
TypeError: Cannot read properties of undefined (reading 'configs')
Importing from 'eslint-config-canonical' without a subpath, expecting named exports that no longer exist.
fix
Use path imports like 'eslint-config-canonical/auto' or import * as configs and use configs.react etc. (note: subpath imports are recommended).
Upgrade
Version history
47.4.2latest on npm
Audit
Dependencies
eslintrequiredpeer dependency: requires ESLint ^9 for compatibility with flat config and new rule APIs.
Agent activity
2 hits · last 30 days
node
2
Resources
eslint-config-canonical — npm install eslint-config-canonical · libregistry