eslint-plugin-smells is an ESLint plugin that provides rules to detect code smells in JavaScript. Version 1.0.1 is the latest release. The plugin includes rules such as no-switch, no-complex-switch-case, no-setinterval, no-this-assign, no-complex-string-concat, and no-complex-chaining. It helps enforce cleaner coding practices by flagging common anti-patterns. The project is maintained but has not seen recent updates. It requires ESLint as a peer dependency and is used as an ESLint plugin via the plugins configuration.
Verified import paths — ran on the pinned version, not inferred.
The plugin is typically configured in .eslintrc without explicit import; direct import is rarely needed. Use require for CommonJS or import for ESM if you must access rules programmatically.
Rule names use the 'smells/' prefix. Set severity as 0, 1, or 2, not boolean.
Rules are not exported as named symbols; they are accessed via plugin namespace.
Minimal ESLint configuration to enable all code smell rules from eslint-plugin-smells.
Breaking-change detection hasn't run for this library yet.
CVE tracking and dependency tree are planned for a later release.