sort-export-specifiers
Enforce alphabetical sorting of named export specifiers.
Deprecated
- Lifecycle: Deprecated, frozen, and non-recommended.
- Deprecated since:
v3.0.0 - Available until:
v4.0.0 - Use instead:
perfectionist/sort-named-exports
The replacement provides maintained, configurable ordering and autofixing. Review its comparison and partition options rather than assuming this rule's fixed lexical ordering.
Targeted pattern scope
This rule inspects ExportNamedDeclaration nodes that have at least two
ExportSpecifier entries.
Specifiers are sorted alphabetically by exported name.
What this rule reports
This rule reports named export declarations whose specifier order is not alphabetical.
It includes an autofix that rewrites the specifier segment.
Why this rule exists
Alphabetical export lists are easier to scan and reduce merge conflict noise.
❌ Incorrect
export { zebra, alpha };
✅ Correct
export { alpha, zebra };
Behavior and migration notes
This rule is fixable.
Because the fixer rewrites text in the specifier range, review --fix changes
carefully when using alias exports or complex formatting.
Options
This rule has no options.
Additional examples
export { C, A, B };
// ❌ reported, auto-fixed to A, B, C
export { A, B, C };
// ✅ valid
ESLint flat config example
import etcMisc from "eslint-plugin-etc-misc";
export default [
{
plugins: { "etc-misc": etcMisc },
rules: {
"etc-misc/sort-export-specifiers": "error",
},
},
];
When not to use it
Disable this rule if export ordering is intentionally semantic rather than alphabetical.
Package documentation
Rule catalog ID: R093
Further reading
Adoption resources
- Start at warning level in CI, then move to error after cleanup.
- Use focused codemods/autofix batches per package or directory.