@guidecx/config-prettier
v1.0.1-alpha.0
Published
Prettier configuration files for use in GCX applications
Downloads
1
Readme
GCX Prettier Config
This module contains the configuration files for Prettier that are used by all GuideCX applications.
Installing library into another project
The index.js
file exports our prettier configuration. In the project you are adding this configuration file to, you can do the following in your .prettierrc.js
file assuming you have installed the dependency via npm install --save-dev @guidecx/config-prettier
:
module.exports = {
...require("@guidecx/config-prettier"),
// overwritten rules as needed. EG:
// semi: false
};
Running prettier automatically in each application
Generally it is a good idea to make sure that all of our projects are using husky pre-commit hooks with lint-staged to run prettier against all of the files that were changed in a commit.
According to the lint-staged docs, the easiest way to install husky and lint-staged together is by running npx mrm lint-staged
. You'll need to install prettier via npm i --save-dev prettier
as well.
You will also need to install npm-run-all
and prettier
as peerDependencies; npm install --save-dev npm-run-all prettier
Follow the installation instructions provided in the husky documentation, then add the follow lines to the package.json
file:
"scripts": {
"format": "prettier \"{src,pages,components,lib}/**/*.{ts,tsx,js,jsx,graphql}\"",
"format:write": "yarn format -- --list-different --write",
"format:check": "yarn format -- --check",
"validate": "npm-run-all --parallel -c format:check \"lint --quiet\" tsc test"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"{src,pages,components,lib}/**/*.{ts,tsx,js,jsx,graphql}": [
"yarn format:write",
"git add"
]
}
Note: the
validate
script is dependent on you havinglint
andtsc
scripts. If those do not exist in your package, modify the script to meet your needs.
Prettierignore file
As of [email protected]
, the .prettierignore
file does not allow us to extend another ignore config file. Because of this, an ignore file will need to be created in each application that needs one (it is recommended to have one in every project that uses prettier).
This library has an example file that you can copy and modify as needed.
# every project
package.json
node_modules/
build/
public/
dist/
# react applications with apollo
src/apollo/schema.json
src/apollo/graphql.tsx
# express applications