Registry / devops / canonical

canonical

JSON →
library3.2.1jsnpmunverified

Canonical is a comprehensive code style linter and formatter for JavaScript, SCSS/CSS and JSON, built on ESLint and custom plugins. Version 3.2.1 (latest) is stable with moderate release cadence. It enforces over 500 rules from eslint-config-canonical, including custom JSDoc and FlowType rules, aiming for consistent style, reduced VCS noise, and adoption of latest ES features. Compared to alternatives like Standard or Airbnb, Canonical is more opinionated and extensive, but may require more setup.

npm install canonical
INSTALL
IMPORT
SIG · CANONICAL
C
canonical
devopsjavascriptv3.2.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

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

default import
import canonical from 'canonical'
const canonical = require('canonical')
Canonical provides a default export via ESM. The package is ESM-only since v3, so require() will fail.
lint
import { lint } from 'canonical'
import { lint } from 'canonical/lint'
Named exports are available for programmatic use. Import from the main package, not a subpath.
fix
import { fix } from 'canonical'
import { fix } from 'canonical/lib/fix'
Named export for fixing. Do not import from internal paths as they are not public API.

Demonstrates CLI usage and programmatic linting and fixing with Canonical, showing both default and named imports.

// npm install -g canonical // Lint all JavaScript in ./src/ // canonical lint ./src/**/*.js // Programmatic usage (ESM) import canonical from 'canonical'; const result = canonical.lint({ files: ['./src/**/*.js'] }); console.log(result); // Or use named exports import { lint, fix } from 'canonical'; const lintResult = lint({ files: ['./src/**/*.js'] }); const fixResult = fix({ files: ['./src/**/*.js'] });
Debug
Known issues
breakingv3 drops CommonJS support; package is ESM-only. Use import or dynamic import().
fix
Ensure your project uses ESM (type: module in package.json) or use dynamic import('canonical').
affects: >=3.0.0
deprecatedThe CLI command 'canonical' may conflict with other tools. Use npx canonical for clarity.
fix
Prefer npx canonical lint ... to avoid global install conflicts.
affects: >=2.0.0
gotchaCanonical's custom rules (e.g., eslint-plugin-jsdoc) may conflict with existing ESLint configurations.
fix
Use only Canonical's config or carefully override rules after loading eslint-config-canonical.
affects: >=1.0.0
Errors
Common errors & fixes
Error: Cannot find module 'canonical'
Package not installed or used with require() in ESM-only version.
fix
Install canonical with npm install canonical and use import canonical from 'canonical' (ESM) or dynamic import().
Error: config is not valid: cannot read property 'rules' of undefined
Canonical is used without loading eslint-config-canonical first.
fix
Configure ESLint to extend 'canonical' in your .eslintrc.js: module.exports = { extends: ['canonical'] };
TypeError: canonical.lint is not a function
Default import is an object; lint is a nested method. Ensure correct usage.
fix
Use canonical.lint({ files: [...] }) or import { lint } from 'canonical'.
Upgrade
Version history
3.2.1latest on npm
Audit
Dependencies
eslintrequiredCore linting engine for JavaScript
eslint-config-canonicalrequiredRule configuration package
Agent activity
6 hits · last 30 days
node
6
Resources
canonical — npm install canonical · libregistry