Prettier Plugin Organize Class Members
raw JSON → 1.0.0-beta.6 verified Sat Apr 25 auth: no javascript
A Prettier plugin that automatically organizes JavaScript and TypeScript class members into a consistent order. Version 1.0.0-beta.6 is the current stable release with no update cadence. It leverages Prettier's plugin system to reorder class members (public/private, methods/properties, etc.) without modifying AST nodes beyond ordering. Differentiators: focused solely on class member organization, supports custom ordering, respects access modifiers and static classification.
Common errors
error Error: Cannot find module 'prettier-plugin-organize-class-members' ↓
cause Plugin not installed or not in node_modules.
fix
Run: npm install --save-dev prettier-plugin-organize-class-members
error Error: [prettier-plugin-organize-class-members] Invalid option 'organizeClassMembersOrder' ↓
cause Configuration option name typo or incorrect format.
fix
Use 'organizeClassMembersOrder' (exact spelling) and provide an array of strings.
error Error: Requires Prettier version ^2.6.2 ↓
cause Installed Prettier version is too old.
fix
Update Prettier to >=2.6.2: npm install --save-dev prettier@^2.6.2
Warnings
breaking Plugin version 1.0.0-beta.6 requires Prettier ^2.6.2. Using with older Prettier versions may cause errors. ↓
fix Update Prettier to ^2.6.2 or later.
deprecated The option 'organizeClassMembersOrder' may change in future stable releases. Current version is beta and not guaranteed stable. ↓
fix Monitor repository for stable release and update configuration accordingly.
gotcha Plugin does not preserve original member ordering; it reorders all members based on configuration. Comments and decorators may be moved with their members. ↓
fix Review formatted output to ensure no unexpected reordering of commented or decorated members.
gotcha Plugin only works on files that Prettier parses as TypeScript or JavaScript (including JSX). It does not affect other file types. ↓
fix Ensure your files are recognized by Prettier as JS/TS or explicitly configure file extensions.
Install
npm install prettier-plugin-organize-class-members yarn add prettier-plugin-organize-class-members pnpm add prettier-plugin-organize-class-members Imports
- default wrong
plugins: [require('prettier-plugin-organize-class-members')]correctmodule.exports = { plugins: ['prettier-plugin-organize-class-members'] } - organizeClassMembers wrong
const { organizeClassMembers } = require('prettier-plugin-organize-class-members')correctimport { organizeClassMembers } from 'prettier-plugin-organize-class-members' - prettier-plugin-organize-class-members wrong
require('prettier-plugin-organize-class-members')correct// .prettierrc { "plugins": ["prettier-plugin-organize-class-members"] }
Quickstart
// Add to .prettierrc
{
"plugins": ["prettier-plugin-organize-class-members"],
"organizeClassMembersOrder": [
"static-property",
"property",
"constructor",
"static-method",
"method",
"getter",
"setter"
]
}
// Then format a file:
// npx prettier --write myfile.ts
// Input:
class Example {
private b: number;
public a: string;
constructor() {}
private getC() { return 1; }
public getD() { return 2; }
}
// Output:
class Example {
public a: string;
private b: number;
constructor() {}
public getD() { return 2; }
private getC() { return 1; }
}