@dennisvash/prettier-config v2.0.1
prettier-config
Pairs well with mine ESLint configuration.
Installation
yarn
yarn add --dev @dennisvash/prettier-config prettiernpm
npm install --save-dev @dennisvash/prettier-config prettierUsage
We export two ESLint configurations for your usage:
Default Config
Create a prettier.config.js file at the root of your project that contains:
module.exports = require('@dennisvash/prettier-config');Four Spaces Config
If you prefer 4 spaces instead of 2, use this in your prettier.config.js instead:
module.exports = require('@dennisvash/prettier-config/four-spaces');Pre-commit Hook
As another line of defense, if you want Prettier to automatically fix your errors on commit, you can use pretty-quick with husky, which manage git hooks.
yarn add --dev prettier pretty-quick husky
npm install --save-dev prettier pretty-quick huskyUpdate your package.json like this:
{
"husky": {
"hooks": {
"pre-commit": "pretty-quick --staged"
}
}
}If you already have lint-staged running ESLint on precommit, you can just add pretty-quick on top of it:
{
"husky": {
"hooks": {
"pre-commit": "pretty-quick --staged && lint-staged"
}
},
"lint-staged": {
"*.js": ["eslint --fix", "git add"]
}
}Editor Integration
Visual Studio Code
- Install Prettier extension:
View → Extensionsthen find and install Prettier - Code formatter. - Reload the editor.
- In your user settings
Code -> Preferences -> Settingsaddeditor.formatOnSave: true.
- Install Prettier extension:
How to publish to npm
Read npm's docs on How to Update a Package.
npm login- Make sure you're logged into Upstatement's npm account with the credentials from 1pass.
npm whoamiwill tell you if you're already logged in.
- Make sure you're logged into Upstatement's npm account with the credentials from 1pass.
npm version <update_type>update_typecan bepatch,minor, ormajor. If you don't know which one to use, go read about semantic versioning.
npm publish
Enforced Rules
Check out all of Prettier's configuration options.
Print Width: Line wrap at 100 characters.
Tab Width: Spaces per indentation-level.
Tabs: Indent lines with spaces, not tabs.
Semicolons: Always print semicolons at the ends of statements.
const greeting = 'hi';Quote: Use single quotes instead of double quotes.
const quote = 'single quotes are better';Trailing Commas: Use trailing commas wherever possible.
const obj = { a: 'hi', b: 'hey', };Bracket Spacing: Print spaces between brackets in object literals.
{ foo: bar; }JSX Brackets: Put the
>of a multi-line JSX element at the end of the last line instead of being alone on the next line (does not apply to self closing elements).<button className="prettier-class" id="prettier-id" onClick={this.handleClick}> Click Here </button>Arrow Function Parentheses: Omit parens when possible.
x => x;