{"id":19573,"library":"eslint-config-salesforce","title":"eslint-config-salesforce","description":"Official ESLint configuration for Salesforce projects. Provides a set of rules for JavaScript linting, including import restrictions and JSDoc enforcement. Current stable version 2.2.1, released October 2023. Requires eslint, eslint-plugin-import, and eslint-plugin-jsdoc as peer dependencies. Differentiates from generic configs by enforcing Salesforce-specific coding standards, such as no-param-reassign and restrictions on relative imports in lib directories. For TypeScript, use eslint-config-salesforce-typescript instead.","status":"active","version":"2.2.1","language":"javascript","source_language":"en","source_url":"https://github.com/forcedotcom/eslint-config-salesforce","tags":["javascript","Salesforce","eslint"],"install":[{"cmd":"npm install eslint-config-salesforce","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-salesforce","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-salesforce","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for linting","package":"eslint","optional":false},{"reason":"peer dependency for import rules","package":"eslint-plugin-import","optional":false},{"reason":"peer dependency for JSDoc rules","package":"eslint-plugin-jsdoc","optional":false}],"imports":[{"note":"In .eslintrc, use the full package name.","wrong":"extends: ['salesforce']","symbol":"eslint-config-salesforce","correct":"extends: ['eslint-config-salesforce']"},{"note":"Additional config for Salesforce repos, not included by default.","wrong":"","symbol":"eslint-config-salesforce-license","correct":"extends: ['eslint-config-salesforce-license']"},{"note":"Use separate config for TypeScript projects; this one is for JavaScript.","wrong":"extends: ['eslint-config-salesforce'] with TypeScript","symbol":"eslint-config-salesforce-typescript","correct":"extends: ['eslint-config-salesforce-typescript']"}],"quickstart":{"code":"// .eslintrc.js\nmodule.exports = {\n  extends: ['eslint-config-salesforce'],\n};\n\n// Install required packages:\n// npm install --save-dev eslint eslint-plugin-import eslint-plugin-jsdoc eslint-config-salesforce","lang":"javascript","description":"Basic setup extending the Salesforce ESLint config in a JavaScript project."},"warnings":[{"fix":"If you use Prettier, add eslint-config-prettier to your extends array and remove any eslint-plugin-prettier references.","message":"In v1.1.0, removed eslint-plugin-prettier and added eslint-config-prettier. Existing configs relying on prettier rules may break.","severity":"breaking","affected_versions":">=1.1.0"},{"fix":"For TypeScript projects, use eslint-config-salesforce-typescript instead.","message":"This config is for JavaScript only. Using it with TypeScript will cause issues.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Add 'jsdoc/newline-after-description': 'off' to your overrides or revert to an older version.","message":"In v2.0.1, removed the rule 'jsdoc/newline-after-description'. If your codebase relies on it, you must add it manually.","severity":"deprecated","affected_versions":">=2.0.1"},{"fix":"Override rules in your .eslintrc if the restrictions are too strict for your project structure.","message":"The config enforces import restrictions (lib/, non-relative src) which may cause false positives in monorepo setups.","severity":"gotcha","affected_versions":">=1.2.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"npm install --save-dev eslint-plugin-import","cause":"eslint-plugin-import not installed","error":"Error: Failed to load plugin 'import' declared in 'eslint-config-salesforce': Cannot find module 'eslint-plugin-import'"},{"fix":"npm install --save-dev eslint-plugin-jsdoc","cause":"eslint-plugin-jsdoc not installed","error":"Error: Failed to load plugin 'jsdoc' declared in 'eslint-config-salesforce': Cannot find module 'eslint-plugin-jsdoc'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}