{"id":20426,"library":"prettier-plugin-sort-members","title":"prettier-plugin-sort-members","description":"Prettier plugin to sort class, interface, and type alias members (properties, methods, getters/setters) in a configurable order. Current stable version 0.2.4, compatible with Prettier ^3.0.0. Released regularly with bug fixes and features. Differentiators: supports default `@typescript-eslint/member-ordering` order, optional alphabetical sorting, `keepGettersAndSettersTogether`, and experimental `skipSortForSubclassOf` for React component compatibility. Lightweight, no runtime dependencies beyond Prettier.","status":"active","version":"0.2.4","language":"javascript","source_language":"en","source_url":"https://github.com/seiyab/prettier-plugin-sort-members","tags":["javascript","prettier","plugin","sort","members","typescript"],"install":[{"cmd":"npm install prettier-plugin-sort-members","lang":"bash","label":"npm"},{"cmd":"yarn add prettier-plugin-sort-members","lang":"bash","label":"yarn"},{"cmd":"pnpm add prettier-plugin-sort-members","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required to function as a Prettier plugin","package":"prettier","optional":false}],"imports":[{"note":"This is a Prettier plugin, not a programmatic import. Register via plugins array in Prettier config.","wrong":"// Incorrect: adding as regular module import","symbol":"default (plugin registration)","correct":"// In prettierrc: { \"plugins\": [\"prettier-plugin-sort-members\"] }"}],"quickstart":{"code":"// 1. Install\nnpm install --save-dev prettier-plugin-sort-members\n\n// 2. In .prettierrc:\n{\n  \"plugins\": [\"prettier-plugin-sort-members\"],\n  \"sortMembersAlphabetically\": true,\n  \"keepGettersAndSettersTogether\": true\n}\n\n// 3. Example input:\nclass MyClass {\n  d(): void {}\n  e: null;\n  c: string;\n  a(): void {}\n  b: number;\n  constructor() {}\n}\n\n// 4. Run prettier (format will sort members alphabetically, but keep getters/setters together):\n// After formatting, members will be ordered by: static, instance, constructor, methods, with alphabetical sub-ordering","lang":"typescript","description":"Install plugin, configure options in Prettier config, and format TypeScript classes to sort members."},"warnings":[{"fix":"Align options with ESLint's member-ordering configuration, e.g., set sortMembersAlphabetically to match ESLint's alphabetical ordering.","message":"Plugin only sorts based on Prettier's output; conflicts with ESLint member-ordering rules may occur if order differs.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use with caution; prefer alternative patterns if stability is required.","message":"skipSortForSubclassOf is experimental and may change in future versions.","severity":"deprecated","affected_versions":">=0.2.0"},{"fix":"If you rely on getters and setters being separated, explicitly set \"keepGettersAndSettersTogether\": false.","message":"Version 0.2.0 introduced keepGettersAndSettersTogether and changed default behavior to couple getters/setters when option is set. Existing configs without this option remain unchanged.","severity":"breaking","affected_versions":">=0.2.0"},{"fix":"Set sortMembersAlphabetically to true if you want alphabetical sorting of keys in type/interface literals.","message":"The plugin sorts literal keys in object types only when sortMembersAlphabetically is true.","severity":"gotcha","affected_versions":">=0.1.1"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run npm install --save-dev prettier-plugin-sort-members","cause":"Plugin not installed or not in node_modules.","error":"Error: Cannot find module 'prettier-plugin-sort-members'"},{"fix":"Upgrade Prettier to ^3.0.0 and ensure prettier-plugin-sort-members is compatible.","cause":"Prettier version < 3.0.0 does not support plugins that use new API.","error":"Cannot read properties of undefined (reading 'sortMembersAlphabetically')"},{"fix":"Use Prettier's built-in plugin loading via config file or upgrade to Prettier v3.","cause":"Plugin being used programmatically with older Prettier API.","error":"TypeError: prettier.resolveConfig is not a function"},{"fix":"Adjust ESLint member-ordering config to match plugin's order, or disable rule if plugin is used.","cause":"ESLint enforces a different member order than the plugin produces.","error":"ESLint: member-ordering rule conflict with prettier-plugin-sort-members output"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}