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-standardThis 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"// `prettier.config.js` or `.prettierrc.js`
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
.prettierrcfile, written in YAML or JSON, with optional extensions:.yaml/.yml/.json.- A
.prettierrc.tomlfile, written in TOML (the.tomlextension is required).- A
prettier.config.jsor.prettierrc.jsfile that exports an object.- A
"prettier"key in yourpackage.jsonfile....
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.jsfile and export the modifications, e.g:module.exports = { ...require("@company/prettier-config"), semi: false };
For example, if you need to change it so that semicolons are required:
// `prettier.config.js` or `.prettierrc.js`
const prettierConfigStandard = require('prettier-config-standard')
const merge = require('lodash.merge')
const modifiedConfig = merge(
{},
prettierConfigStandard,
{
semi: true,
// ... other modified settings here
}
)
module.exports = modifiedConfig