A shared, ESM-first Prettier config for our projects - small API, zero friction, and sensible defaults.
- Unified style across our repositories.
- Zero-config:
export default prettier()works out of the box. - ESM-first: works naturally with modern JS/TS projects.
- Customizable: pass options or extend the factory for project needs.
- Prettier 3+ compatible and plays nicely with
lint-staged,husky, CI pipelines.
Install the package (choose your package manager):
# pnpm (recommended)
pnpm add -D prettier @maneko/prettier-config
# yarn
yarn add -D prettier @maneko/prettier-config
# npm
npm install -D prettier @maneko/prettier-configFor TailwindCSS users, install this optional plugin:
pnpm add -D prettier-plugin-tailwindcssCreate a Prettier config file in your project.
ESM project (.prettierrc.mjs):
import { prettier } from '@maneko/prettier-config';
export default prettier();CJS project (.prettierrc.cjs / .prettierrc.js):
const { prettier } = require('@maneko/prettier-config');
module.exports = prettier();Pass options to override Prettier's defaults:
import { prettier } from '@maneko/prettier-config';
export default prettier({
printWidth: 100,
singleQuote: true,
trailingComma: 'none'
// any other Prettier options
});The function simply merges your options with the shared defaults — minimal API, familiar behavior.
Add scripts to package.json:
{
"scripts": {
"format": "prettier --write .",
"format:check": "prettier --check ."
}
}Example lint-staged + husky:
{
"lint-staged": {
"**/*.{js,ts,jsx,tsx,mjs,cjs,json,md}": ["pnpm format"]
}
}Install the Prettier VS Code extension: esbenp.prettier-vscode.
Recommended .vscode/settings.json:
If you use both
@maneko/eslintand@maneko/prettier-config, let Prettier handle pure formatting (quotes, spacing, commas) and ESLint handle logic and style rules.
PRs welcome. Keep changes small and document any new opinionated rules.
@maneko/prettier-config is licensed under the MIT License. See the LICENSE file in the repository.
{ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "prettier.resolveGlobalModules": false, "prettier.requireConfig": true // If you use an ESLint config for formatting, you may want: // "eslint.format.enable": false }