{"id":40976,"library":"eslint-config-mdcs","title":"eslint-config-mdcs","description":"ESLint shareable config for Mr.doob's Code Style™, the coding style used by three.js and other mrdoob projects. Current stable version is 5.0.0, released Apr 2020. The config enforces Mr.doob's conventions via ESLint with ES2020 support. This package is part of the mrdoobapproves browser-based code style checker/formatter. The config has evolved from a modified JSCS to now rely entirely on ESLint. Major differentiator: it's the official style for contributing to three.js, simplifying PR submission by validating adherence to Mr.doob's Code Style.","status":"active","version":"5.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/zz85/mrdoobapproves","tags":["javascript","mrdoob","code","style","lint","hint","codemirror","jscs","esprima"],"install":[{"cmd":"npm install eslint-config-mdcs","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-mdcs","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-mdcs","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESLint resolves shareable configs automatically without the 'eslint-config-' prefix in the extends field.","wrong":"extends: 'eslint-config-mdcs'","symbol":"eslint-config-mdcs","correct":"extends: 'mdcs' in .eslintrc"}],"quickstart":{"code":"// Install the config\nnpm install --save-dev eslint-config-mdcs\n\n// Create .eslintrc.json\n{\n  \"extends\": \"mdcs\"\n}\n\n// Or in package.json\n\"eslintConfig\": {\n  \"extends\": \"mdcs\"\n}","lang":"json","description":"Install and configure eslint-config-mdcs in a JavaScript project. Shows npm install and ESLint config setup."},"warnings":[{"fix":"Stay on version 4.0.0 or migrate to ESLint-only setup.","message":"Version 5.0 removes legacy JSCS support entirely. If you rely on JSCS rules, do not upgrade.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Update your config to use 'semi-style': ['error', 'last'] instead.","message":"The rule 'no-space-before-semicolon' is deprecated in favor of 'semi-style'.","severity":"deprecated","affected_versions":">= 5.0.0"},{"fix":"Make sure your ESLint version is >= 7.0.0 and parser options support ES2020.","message":"The config enforces ES2020 syntax features (like optional chaining). Using this config with an older ESLint version may cause parsing errors.","severity":"gotcha","affected_versions":">=5.0.0"},{"fix":"Use exactly 'mdcs' in the extends field.","message":"The 'mdcs' extends value is case-sensitive and must be lowercase. 'MDCS' or 'Mdcs' will not work.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'2020':30 '5.0.0':27 'adher':85 'apr':29 'base':51 'browser':50 'browser-bas':49 'checker/formatter':54 'code':11,14,52,89,93 'codemirror':97 'config':3,7,32,56 'contribut':77 'convent':36 'current':23 'differenti':70 'enforc':33 'entir':66 'es2020':40 'eslint':2,5,38,68 'eslint-config-mdc':1 'esprima':99 'evolv':58 'hint':96 'javascript':91 'jscs':62,98 'lint':95 'major':69 'mdcs':4 'modifi':61 'mr.doob':9,34,87 'mrdoob':21,92 'mrdoobapprov':48 'offici':74 'packag':43 'part':45 'pr':81 'project':22 'releas':28 'reli':65 'shareabl':6 'simplifi':80 'stabl':24 'style':12,15,53,75,90,94 'submiss':82 'support':41 'three.js':18,79 'use':16 'valid':84 'version':25 'via':37","created_at":"2026-06-04T18:50:10.449988+00:00","updated_at":"2026-06-04T18:50:10.449988+00:00","problems":[{"fix":"Run 'npm install --save-dev eslint-config-mdcs' and ensure the package is in your devDependencies.","cause":"The eslintrc extends field contains 'mdcs' but eslint-config-mdcs is not installed or is missing.","error":"Error: Failed to load config \"mdcs\" to extend from."},{"fix":"Update ESLint to version 7.0.0 or later, and ensure your ESLint configuration does not override parserOptions with an earlier ecmaVersion.","cause":"The config uses ES2020 features (e.g., optional chaining with ?.) but the parser or ESLint version does not support them.","error":"Parsing error: Unexpected token ."},{"fix":"Remove 'no-space-before-semicolon' from your rules and use 'semi-style' instead.","cause":"Using a deprecated rule that was removed in ESLint 5.0 or later.","error":"Configuration for rule 'no-space-before-semicolon' is invalid: has been removed."}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/zz85/mrdoobapproves","github":"https://github.com/zz85/mrdoobapproves","docs":null,"changelog":null,"pypi":null,"npm":"eslint-config-mdcs","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}