Registry / testing / eslint-config-wikimedia

eslint-config-wikimedia

JSON →
library0.32.3jsnpmunverified

ESLint shareable config following Wikimedia coding conventions. Current stable version is 0.32.3, released November 2025, with Node.js >=20 <25 required. It provides profiles for client, server, MediaWiki extensions, jQuery, QUnit, Mocha, Selenium, Vue, and TypeScript. Distinct from other ESLint configs by enforcing Wikimedia-specific rules (e.g., MediaWiki message documentation, no self-closing Vue tags) and evolving target ES versions (ES2017 for client, ES2022 for server).

npm install eslint-config-wikimedia
INSTALL
IMPORT
SIG · ESLINT-CONFIG-WIKI
E
eslint-config-wikimedia
testingjavascriptv0.32.3
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.

eslint-config-wikimedia
{ "extends": "wikimedia" }
{ "extends": "eslint-config-wikimedia" }
In .eslintrc.json, use the short name 'wikimedia' not the full package name.
client profile
{ "extends": "wikimedia/client" }
{ "extends": "wikimedia/client-common" }
Since 0.30.0, compound profile aliases like client-common are deprecated; use client/common (in version-specific sub-profiles) or just 'client'.
mediawiki profile
{ "extends": ["wikimedia/client", "wikimedia/mediawiki"] }
{ "extends": "wikimedia/mediawiki" }
Typically combined with a client or server profile. mediawiki alone may not set proper language environment.

Basic ESLint config using Wikimedia client profile with jQuery support and custom global symbols.

// .eslintrc.json { "root": true, "extends": [ "wikimedia/client", "wikimedia/jquery" ], "env": { "browser": true, "jquery": true }, "globals": { "$": "readonly" }, "rules": { "no-console": "warn" } }
Debug
Known issues
breakingRemove ES5 configs in v0.29.0
fix
Update configs that extend 'wikimedia/es5' or similar. No ES5 profiles are available; use a different base.
affects: >=0.29.0
breakingDrop deprecated compound profile aliases in v0.30.0
fix
Replace 'client-common' with 'client/common', 'mediawiki-qunit' with 'mediawiki/qunit', etc.
affects: >=0.30.0
breakingDelete vue2 configs in v0.30.0
fix
Use vue3 profiles instead; Vue2 is no longer supported.
affects: >=0.30.0
breakingNode.js minimum version increased to 20 in v0.32.0
fix
Upgrade Node.js to >=20.0.0.
affects: >=0.32.0
deprecatedCompound profile aliases (e.g., 'client-es6') deprecated since v0.30.0
fix
Use the sub-profile path (e.g., 'client/es6').
affects: >=0.30.0
gotchaExtending 'wikimedia' alone does not set any environment or ES version
fix
Always combine with at least 'wikimedia/client' or 'wikimedia/server' and an ES level profile.
affects: *
gotchaTypeScript files are automatically linted but require a compile step
fix
Ensure TypeScript files are compiled before linting, as the config assumes transpiled code.
affects: *
Errors
Common errors & fixes
Configuration for rule "array-bracket-newline" is invalid
Incompatible rule setup when mixing custom rules with Wikimedia config
fix
Remove custom array-bracket-newline rule or adjust to match Wikimedia's preset.
Cannot read config 'wikimedia/client/es6'
Profile aliases changed; es6 subprofile now under client/common/es6
fix
Use 'wikimedia/client/es6' (still valid) or 'wikimedia/client/common/es6'.
ESLint couldn't find the config "wikimedia"
eslint-config-wikimedia not installed or missing from node_modules
fix
Run npm install --save-dev eslint-config-wikimedia
Upgrade
Version history
0.32.3latest on npm
Audit
Dependencies
eslintrequiredpeer dependency; required as the linting engine
Agent activity
2 hits · last 30 days
node
2
Resources
eslint-config-wikimedia — npm install eslint-config-wikimedia · libregistry