Migration from eslint-plugin-etc and eslint-plugin-misc
This guide helps you migrate from separate plugin usage to
eslint-plugin-etc-misc with minimal disruption.
Why migrate
- Single package install and versioning strategy.
- One namespace (
etc-misc/*) for rule configuration. - Curated presets with documented deprecations and replacements.
Migration steps
1) Install the unified plugin
npm install --save-dev eslint-plugin-etc-misc
2) Replace plugin imports in flat config
Before:
import etc from "eslint-plugin-etc";
import misc from "eslint-plugin-misc";
export default [
{
plugins: { etc, misc },
rules: {
"etc/no-internal": "error",
"misc/no-t": "error",
},
},
];
After:
import etcMisc from "eslint-plugin-etc-misc";
export default [etcMisc.configs.recommended];
3) Update namespaced rule IDs (if manually configured)
etc/<rule>andmisc/<rule>becomeetc-misc/<rule>.- For TypeScript-scoped rules, use
etc-misc/typescript/<rule>.
4) Validate and tune severities
Run your quality gate, then adjust severities as needed:
npm run lint
npm test
Suggested migration flow
Common migration notes
- Some legacy rules are intentionally deprecated in this plugin and include replacement guidance in docs.
- If you previously maintained a heavily custom rule list, start from
recommended, then layer explicit overrides.
Verification checklist
- No references to
etc/ormisc/namespaces remain in config. -
eslint-plugin-etc-miscis the active plugin in your lint pipeline. - CI passes with updated lint and test baselines.