{"id":20348,"library":"prettier-plugin-curly","title":"prettier-plugin-curly","description":"Prettier plugin to enforce consistent brace style for all control statements (for, if, while, etc.), adding curly braces around bodies. Current stable version is 0.4.1, released November 2025. It works alongside Prettier to enforce the equivalent of ESLint's curly 'all' rule, filling a gap where Prettier intentionally avoids modifying code structure. Requires Node >=18 and Prettier ^3. Version 0.4.0 introduced a complete rewrite using wrapped printers.estree. The plugin is actively maintained by JoshuaKGoldberg and the community.","status":"active","version":"0.4.1","language":"javascript","source_language":"en","source_url":"https://github.com/JoshuaKGoldberg/prettier-plugin-curly","tags":["javascript"],"install":[{"cmd":"npm install prettier-plugin-curly","lang":"bash","label":"npm"},{"cmd":"yarn add prettier-plugin-curly","lang":"bash","label":"yarn"},{"cmd":"pnpm add prettier-plugin-curly","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required to use the plugin","package":"prettier","optional":false}],"imports":[{"note":"ESM-only since v0.4.0; CommonJS require() will fail","wrong":"const prettierPluginCurly = require('prettier-plugin-curly')","symbol":"default","correct":"import prettierPluginCurly from 'prettier-plugin-curly'"},{"note":"String name is preferred; path-based referencing may break with module resolution","wrong":"module.exports = { plugins: ['./node_modules/prettier-plugin-curly'] }","symbol":"default","correct":"module.exports = { plugins: ['prettier-plugin-curly'] }"},{"note":"Named export 'default' is not used; default import is correct","wrong":"const { default: prettierPluginCurly } = require('prettier-plugin-curly')","symbol":"prettierPluginCurly","correct":"import prettierPluginCurly from 'prettier-plugin-curly'"}],"quickstart":{"code":"// .prettierrc\n{\n  \"plugins\": [\"prettier-plugin-curly\"]\n}\n\n// Before: if (x) doSomething();\n// After prettier formatting:\n// if (x) {\n//   doSomething();\n// }","lang":"javascript","description":"Configures Prettier to use prettier-plugin-curly; shows transformation of single-line if to curly brace style."},"warnings":[{"fix":"Upgrade to Prettier 3 and use prettier-plugin-curly ^0.4.1","message":"Dropped support for Prettier 2 in v0.4.1","severity":"breaking","affected_versions":"<0.4.1"},{"fix":"Ensure no custom printer overrides conflict with new internal architecture","message":"Complete rewrite in v0.4.0: plugin now exports a wrapped printers.estree instead of printers.ast","severity":"breaking","affected_versions":">=0.4.0 <0.4.1"},{"fix":"Use ESM imports or upgrade to v0.4.1 which may have limited CJS support (check release notes)","message":"CommonJS require() no longer works in v0.4.0+","severity":"deprecated","affected_versions":">=0.4.0"},{"fix":"If selective behavior is needed, consider ESLint's curly rule instead","message":"Plugin modifies Prettier output for all control statements unconditionally; cannot be configured to skip certain statements","severity":"gotcha","affected_versions":"all"},{"fix":"Ensure plugin order in 'plugins' array places prettier-plugin-curly before any conflicting plugins","message":"Plugin may conflict with other Prettier plugins that modify control statement printing","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run `npm install prettier-plugin-curly --save-dev`","cause":"Package not installed or Node.js cannot resolve it","error":"Error: Cannot find module 'prettier-plugin-curly'"},{"fix":"In .prettierrc, use \"plugins\": [\"prettier-plugin-curly\"] (string name) not a path","cause":"Using incorrect import or path configuration","error":"Error: The module 'prettier-plugin-curly' is not a Prettier plugin"},{"fix":"Use import syntax or downgrade to v0.3.x (but note Prettier 3 support may be limited)","cause":"Trying to use require() with ESM-only package (v0.4.0+)","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module"},{"fix":"Use `import prettierPluginCurly from 'prettier-plugin-curly'` (default import) not `{ prettierPluginCurly }`","cause":"Incorrectly destructuring default export","error":"TypeError: prettierPluginCurly is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}