prettier-config-standard
A Prettier shareable config
for projects using Prettier and
JavaScript Standard Style as ESLint rules or
separate processes.
Installation
npm install --save-dev prettier-config-standard
This is only a shareable configuration. It does not install Prettier, Standard,
ESLint, or any other part of the tool chain.
Usage
Reference it in package.json
using the prettier
property:
{
"name": "my-projects-name",
"prettier": "prettier-config-standard",
"devDependencies" : {
"prettier-config-standard": "^1.0.0"
}
}
If you don't want to use package.json
, you can use any of the supported
extensions to export a string:
// `.prettierrc.json`
"prettier-config-standard"
module.exports = 'prettier-config-standard'
Extending Shared Configurations
This configuration is not intended to be changed, but if you have a setup where
modification is required, it is possible. Prettier does not offer an "extends"
mechanism as you might be familiar from tools such as ESLint.
To extend a configuration you will need to:
- Import/Require this sharable config from within your own configuration. This
means you must be using a JavaScript version of a Prettier configuration
file.
- Extend your modification on top of the shared config using something like
Object destructuring,
Object.assign(),
or lodash.merge()
- Export the modified configuration
Prettier uses cosmiconfig for
configuration file support. This means you can configure prettier via:
- A
.prettierrc
file, written in YAML or JSON, with optional extensions: .yaml/.yml/.json
.
- A
.prettierrc.toml
file, written in TOML (the .toml
extension is required).
- A
prettier.config.js
or .prettierrc.js
file that exports an object.
- A
"prettier"
key in your package.json
file.
...
Sharing configurations
Note: This method does not offer a way to extend the configuration to
overwrite some properties from the shared configuration. If you need to do
that, import the file in a .prettierrc.js
file and export the
modifications, e.g:
module.exports = {
...require("@company/prettier-config"),
semi: false
};
source: https://github.com/prettier/prettier/blob/cacaa92a3f0acf9618f54cd60c9b36b37744dbde/docs/configuration.md
For example, if you need to change it so that semicolons are required:
const prettierConfigStandard = require('prettier-config-standard')
const merge = require('lodash.merge')
const modifiedConfig = merge(
{},
prettierConfigStandard,
{
semi: true,
}
)
module.exports = modifiedConfig