This project is the maintained offshoot of eslint-config-defaults with just the Walmart Labs-flavored rules included. It is eslint@2+
-compatible and actively maintained (with love) by the friendly folks at Walmart Labs. Check out the style guide for a comprehensive list of rules.
-
Install this config package and ESLint:
$ npm install --save-dev eslint eslint-config-walmart
-
Then, install any additional dependencies required by your configuration. (See Dependencies section below.)
e.g.
$ npm install --save-dev eslint-plugin-filenames babel-eslint
This package includes the following complete and ready to use configurations:
walmart
- ES6 configwalmart/configurations/off
- Disable all rules (ESLint's default at 1.0.0+)walmart/configurations/es5-browser
- ES5 + browserwalmart/configurations/es5-node
- ES5 + node < 4.xwalmart/configurations/es5-test
- ES5 + testwalmart/configurations/es5
- ES5 configwalmart/configurations/es6-browser
- ES6 + browserwalmart/configurations/es6-node
- ES6 + node 4.xwalmart/configurations/es6-react-test
- ES6 + react + testwalmart/configurations/es6-react
- ES6 + reactwalmart/configurations/es6-test
- ES6 + testwalmart/configurations/es6
- ES6 config
- Any config (
walmart/configurations/<suffix>
) - eslint-plugin-filenames - Any React config (
<prefix>-react
) - eslint-plugin-react, babel-eslint - Any ES-next config (
es6-<suffix>
) - babel-eslint
To consume and extend a config in ESLint just add the extends attribute to your .eslintrc
. For
more details about how shareable configs work, see the
ESLint documentation.
---
"extends":
- "walmart"
---
"extends":
- "walmart/configurations/es6-browser"
NOTE: Extending multiple complete configs can cause unexpected results, if you need to do this you should consider a piecemeal config as explained below. See walmartlabs/eslint-config-defaults#38 for details.
ESLint configuration is broken apart in ./rules
containing ESLint's rules and rules for specific ESLint plugins. The full set of ESLint rules (./rules/eslint
) are broken into categories that mirror ESLint's documentation. Under each rule type there are sets of configuration as well as an off.js
file which turns off every rule in the category.
---
"extends":
- "walmart/rules/eslint/best-practices/on",
- "walmart/rules/eslint/es6/off"
- "walmart/rules/eslint/node/off"
"env":
"phantom": true
Due to an issue with ESLint, config extension cannot be called from a globally installed (npm install -g eslint
) eslint. It can however be run properly using eslint installed directly to your package's node_modules
. This can be done by either calling it directly (./node_modules/.bin/eslint .
) or from within an npm script since they automatically check local node_modules
first. This will be tracked in issue #43.
- ESLint 2.10.2
- eslint-plugin-react 5.1.1
- eslint-plugin-filenames 1.0.0
- Nicholas C. Zakas for all the amazing work on ESLint
- Keith Cirkel for painstakingly formatting all of ESLint's rules into JSON in eslint-config-strict
- AirBnB for sharing all of their config in JavaScript Style Guide
- Google for sharing their styleguide
- ES-Next Compat Table for the excellent docs on node features