A set of default eslint configurations, Walmart Labs style.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
configurations Added no-param-reassign rule (#32) Nov 20, 2017
docs Add a link to an ESLint rule document (#34) Nov 20, 2017
rules
.editorconfig Add editorconfig Jun 17, 2015
.eslintrc Rename walmart.js -> on.js and flattened the tree May 23, 2016
.gitignore Fix duplicate fields, add eslint to configs, add travis. Jan 12, 2016
.travis.yml
CHANGELOG.md Update again to comply with semver's tag naming Mar 5, 2016
LICENSE
README.md
package-lock.json
package.json

README.md

eslint-config-walmart

A composable set of ESLint configurations.


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.

Installation

  1. Install this config package and ESLint:

    $ npm install --save-dev eslint eslint-config-walmart
  2. Then, install any additional dependencies required by your configuration. (See Dependencies section below.)

    e.g.
    ```bash
    $ npm install --save-dev eslint-plugin-filenames babel-eslint
    ```
    

Usage

Full Configurations

This package includes the following complete and ready to use configurations:

  • walmart - ES6 config
  • walmart/configurations/off - Disable all rules (ESLint's default at 1.0.0+)
  • walmart/configurations/es5-browser - ES5 + browser
  • walmart/configurations/es5-node - ES5 + node < 4.x
  • walmart/configurations/es5-test - ES5 + test
  • walmart/configurations/es5 - ES5 config
  • walmart/configurations/es6-browser - ES6 + browser
  • walmart/configurations/es6-node-test - ES6 + node 4.x + test
  • walmart/configurations/es6-node - ES6 + node 4.x
  • walmart/configurations/es6-react-test - ES6 + react + test
  • walmart/configurations/es6-react - ES6 + react
  • walmart/configurations/es6-test - ES6 + test
  • walmart/configurations/es6 - ES6 config
Dependencies

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 https://github.com/walmartlabs/eslint-config-defaults/issues/38 for details.

Piecemeal Configurations

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.

Examples
---
"extends":
  - "walmart/rules/eslint/best-practices/on",
  - "walmart/rules/eslint/es6/off"
  - "walmart/rules/eslint/node/off"

"env":
  "phantom": true

Limitations

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.

This package tracks config in the following versions:

And A Special Thanks To


License

Copyright (c) 2015-present, WalmartLabs

Licensed under the Apache License, Version 2.0.