{"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,"search_vec":"'2.2.1':28 '2023':31 'code':55 'config':3,49,76 'configur':7 'current':25 'depend':45 'differenti':46 'directori':70 'enforc':24,51 'eslint':2,6,33,35,40,75,82 'eslint-config-salesforc':1 'eslint-config-salesforce-typescript':74 'eslint-plugin-import':34 'eslint-plugin-jsdoc':39 'generic':48 'import':20,37,67 'includ':19 'instead':79 'javascript':17,80 'jsdoc':23,42 'lib':69 'lint':18 'no-param-reassign':59 'octob':30 'offici':5 'param':61 'peer':44 'plugin':36,41 'project':10 'provid':11 'reassign':62 'relat':66 'releas':29 'requir':32 'restrict':21,64 'rule':15 'salesforc':4,9,53,77,81 'salesforce-specif':52 'set':13 'specif':54 'stabl':26 'standard':56 'typescript':72,78 'use':73 'version':27","created_at":"2026-04-25T11:18:31.190955+00:00","updated_at":"2026-04-25T11:18:31.190955+00:00","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,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":"https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_dev_lint.htm","github":"https://github.com/forcedotcom/eslint-config-salesforce","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/eslint-config-salesforce","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-24","install_tag":null}}