godaddy-style
Official GoDaddy JavaScript styleguide. It includes eslint
packages for three use-cases and can be used as a standard in any new project.
There are many useful features:
- Standard. No configuration. – Stop worrying about style and focus on your work.
- Modern – Uses modern linting tools like
eslint
. - Auto-fix – Auto-fix is enabled by-default through in
eslint
. Many rules will fix themselves!
This styleguide is used by dozens of product teams at GoDaddy. Have a question or comment? Open an issue!
Installation
Install one of the provided packages depending on the kind of application you are developing:
# Default with ES6npm i eslint-config-godaddy --save-dev# OR (ES6 with React rules)npm i eslint-config-godaddy-react --save-dev# OR (legacy ES5 with React rules)npm i eslint-config-godaddy-es5 --save-dev# OR (ES6 with React and Flow rules)npm i eslint-config-godaddy-react-flow --save-dev
Usage
There are two ways to use this styleguide depending on your own tooling preference: directly using pre-included binaries or running eslint
yourself with a custom .eslintrc
config.
1. Use the pre-included binaries.
These use exactly the configuration defined in the individual eslint-config-godaddy*
package with auto-fix enabled automatically.
"scripts":"lint": "eslint-godaddy files/ you/ want-to/ lint/"
.eslintrc
and run eslint
yourself:
2. Define your local moduleexports =extends: 'godaddy'rules://// Put any rules you wish to override here.//
The --fix
option in eslint
is only available as a CLI option. Auto-fix will NOT be enabled unless you run eslint --fix
in your package.json
.
"scripts":"lint": "eslint --fix files/ you/ want-to/ lint/"
Additional Suggestions for Best Practices
This section is a place for additional best practices that may be useful but are not strictly enforced by this styleguide. Have something to add here? Great! Submit a PR.
React
FAQ
How do I override a specific rule ?
.eslintrc
file at the root of your project:
1. Add a "extends": "godaddy""rules":// Disable the 'max-params' rule"max-params": 0
.eslintrc
file in your package.json
:
2. Add a param to specify the path of your own "scripts":"eslint": "eslint-godaddy -c .eslintrc lib/ test/"
How do I contribute?
Fork this repository and submit a pull request.
Proposed modifications to the style guide should modify the files in /dotfiles
before running npm run build
when submitting a pull request. This repository utilizes the fashion-show module to generate the /dist
files to be checked in.
I disagree with a specific rule
Great. We'd love to talk about it. Fork this repository and submit a pull-request.
Help! It's not working for me!
No problem. Reach out to us by opening an issue
Roadmap
- Add more specific style guidance around React.
- Consider other rules in an
eslint
only implementation:computed-property-spacing
generator-star-spacing
semi-spacing
block-spacing
- Continue to modularize the
eslint
rules. - Translate configuration files into more verbose written documentation.
- Add support for IDE formats (IntelliJ, Webstorm, Atom, Eclipse, Sublime, etc...)
- Never stop improving.