Prettier Configuration
Prettier Configuration
Section titled “Prettier Configuration”pjt provides Prettier configurations for consistent code formatting.
Available configurations
Section titled “Available configurations”Default
Section titled “Default”Standard configuration with common settings.
import pjt from 'pjt/prettier';
export default pjt.config;Custom
Section titled “Custom”Customized configuration for specific needs.
import pjt from 'pjt/prettier';
export default { ...pjt.config, semi: false, singleQuote: true};Module structure
Section titled “Module structure”Prettier configurations are in src/prettier/:
src/prettier/├── index.ts # Main export└── config.ts # ConfigurationConfiguration options
Section titled “Configuration options”Basic options
Section titled “Basic options”export default { // Formatting printWidth: 80, tabWidth: 2, useTabs: false,
// Brackets semi: true, singleQuote: false,
// Commas trailingComma: 'es5',
// Spaces bracketSpacing: true, bracketSameLine: false,
// Other arrowParens: 'avoid', endOfLine: 'lf'};TypeScript options
Section titled “TypeScript options”export default { ...pjt.config, // TypeScript specific parser: 'typescript'};JSX options
Section titled “JSX options”export default { ...pjt.config, // JSX specific jsxSingleQuote: false, jsxBracketSameLine: false};Editor integration
Section titled “Editor integration”VS Code
Section titled “VS Code”Add to .vscode/settings.json:
{ "prettier.configPath": "prettier.config.js", "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode"}WebStorm/IntelliJ
Section titled “WebStorm/IntelliJ”Prettier will automatically use the configuration.
CLI commands
Section titled “CLI commands”Formatting files
Section titled “Formatting files”# Format all filesnpx prettier --write .
# Check formattingnpx prettier --check .
# Format specific filesnpx prettier --write "src/**/*.js"Pre-commit hooks
Section titled “Pre-commit hooks”With Husky
Section titled “With Husky”# Install huskynpm install husky --save-dev
# Add hooknpx husky add .husky/pre-commit "npx prettier --check . && npx eslint ."With lint-staged
Section titled “With lint-staged”{ "lint-staged": { "*.{js,ts,jsx,tsx}": [ "prettier --write", "eslint --fix" ] }}Ignore files
Section titled “Ignore files”Create .prettierignore:
# Standard ignorenode_modules/dist/build/
# Project specificcoverage/*.min.jsBest practices
Section titled “Best practices”1. Consistency
Section titled “1. Consistency”Use the same configuration across the team.
2. Automation
Section titled “2. Automation”Enable format on save in editors.
3. Pre-commit
Section titled “3. Pre-commit”Always check formatting before commit.
4. Team standard
Section titled “4. Team standard”Define team standard for options.
Example configuration
Section titled “Example configuration”import pjt from 'pjt/prettier';
export default { ...pjt.config, // Team standard semi: false, singleQuote: true, trailingComma: 'all',
// Project specific printWidth: 100, tabWidth: 2};Troubleshooting
Section titled “Troubleshooting”Format not applied
Section titled “Format not applied”# Check configurationnpx prettier --config prettier.config.js --check file.js
# Check ignorenpx prettier --ignore-path .prettierignore --check .Conflicts with ESLint
Section titled “Conflicts with ESLint”// Disable ESLint rules that overlap{ rules: { 'quotes': 'off', 'comma-dangle': 'off' }}Slow formatting
Section titled “Slow formatting”- Use
.prettierignore - Format only changed files
- Use
fast-globfor large projects