From de90317a6dd027cdc7a2300687a0c7b2dc533037 Mon Sep 17 00:00:00 2001 From: Jake Teton-Landis Date: Sun, 27 Sep 2015 18:47:13 -0700 Subject: [PATCH 1/3] create legacy.js to export es5 rules --- packages/eslint-config-airbnb/base.js | 18 +----------------- packages/eslint-config-airbnb/index.js | 5 ++--- packages/eslint-config-airbnb/legacy.js | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 packages/eslint-config-airbnb/legacy.js diff --git a/packages/eslint-config-airbnb/base.js b/packages/eslint-config-airbnb/base.js index f3cbf295..cc30af4a 100644 --- a/packages/eslint-config-airbnb/base.js +++ b/packages/eslint-config-airbnb/base.js @@ -1,23 +1,7 @@ module.exports = { 'extends': [ - './rules/best-practices.js', - './rules/errors.js', + './legacy.js', './rules/es6.js', - './rules/legacy.js', - './rules/node.js', - './rules/strict.js', - './rules/style.js', - './rules/variables.js' ], 'parser': 'babel-eslint', - 'env': { - 'browser': true, - 'node': true, - 'amd': false, - 'mocha': false, - 'jasmine': false - }, - 'ecmaFeatures': {}, - 'globals': {}, - 'rules': {} }; diff --git a/packages/eslint-config-airbnb/index.js b/packages/eslint-config-airbnb/index.js index 74d6f345..aa13a960 100644 --- a/packages/eslint-config-airbnb/index.js +++ b/packages/eslint-config-airbnb/index.js @@ -1,7 +1,6 @@ module.exports = { 'extends': [ - // Need to qualify these here for ESLint to resolve them properly. - 'airbnb/base', - 'airbnb/rules/react.js' + './base.js', + './rules/react.js', ] }; diff --git a/packages/eslint-config-airbnb/legacy.js b/packages/eslint-config-airbnb/legacy.js new file mode 100644 index 00000000..e85d6a50 --- /dev/null +++ b/packages/eslint-config-airbnb/legacy.js @@ -0,0 +1,21 @@ +module.exports = { + 'extends': [ + './rules/best-practices.js', + './rules/errors.js', + './rules/legacy.js', + './rules/node.js', + './rules/strict.js', + './rules/style.js', + './rules/variables.js' + ], + 'env': { + 'browser': true, + 'node': true, + 'amd': false, + 'mocha': false, + 'jasmine': false + }, + 'ecmaFeatures': {}, + 'globals': {}, + 'rules': {} +}; From 170dbeb5d45e2fb226efdad9f04bd939e6756393 Mon Sep 17 00:00:00 2001 From: Jake Teton-Landis Date: Sun, 27 Sep 2015 19:32:34 -0700 Subject: [PATCH 2/3] make exported rulesets extend relative to eslint-config-airbnb --- packages/eslint-config-airbnb/base.js | 5 +++-- packages/eslint-config-airbnb/index.js | 7 ++++--- packages/eslint-config-airbnb/legacy.js | 14 +++++++------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/packages/eslint-config-airbnb/base.js b/packages/eslint-config-airbnb/base.js index cc30af4a..ff9904e7 100644 --- a/packages/eslint-config-airbnb/base.js +++ b/packages/eslint-config-airbnb/base.js @@ -1,7 +1,8 @@ module.exports = { 'extends': [ - './legacy.js', - './rules/es6.js', + 'eslint-config-airbnb/legacy', + 'eslint-config-airbnb/rules/es6', ], 'parser': 'babel-eslint', + 'rules': {} }; diff --git a/packages/eslint-config-airbnb/index.js b/packages/eslint-config-airbnb/index.js index aa13a960..46d601fe 100644 --- a/packages/eslint-config-airbnb/index.js +++ b/packages/eslint-config-airbnb/index.js @@ -1,6 +1,7 @@ module.exports = { 'extends': [ - './base.js', - './rules/react.js', - ] + 'eslint-config-airbnb/base', + 'eslint-config-airbnb/rules/react', + ], + rules: {} }; diff --git a/packages/eslint-config-airbnb/legacy.js b/packages/eslint-config-airbnb/legacy.js index e85d6a50..83a4931e 100644 --- a/packages/eslint-config-airbnb/legacy.js +++ b/packages/eslint-config-airbnb/legacy.js @@ -1,12 +1,12 @@ module.exports = { 'extends': [ - './rules/best-practices.js', - './rules/errors.js', - './rules/legacy.js', - './rules/node.js', - './rules/strict.js', - './rules/style.js', - './rules/variables.js' + 'eslint-config-airbnb/rules/best-practices', + 'eslint-config-airbnb/rules/errors', + 'eslint-config-airbnb/rules/legacy', + 'eslint-config-airbnb/rules/node', + 'eslint-config-airbnb/rules/strict', + 'eslint-config-airbnb/rules/style', + 'eslint-config-airbnb/rules/variables' ], 'env': { 'browser': true, From b42e9b82dd33649a6a9b839d727ae287afc2f145 Mon Sep 17 00:00:00 2001 From: Jake Teton-Landis Date: Sun, 27 Sep 2015 19:45:52 -0700 Subject: [PATCH 3/3] explain eslint-config-airbnb rule choices --- packages/eslint-config-airbnb/README.md | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/eslint-config-airbnb/README.md b/packages/eslint-config-airbnb/README.md index 1a8be544..d8af31f6 100644 --- a/packages/eslint-config-airbnb/README.md +++ b/packages/eslint-config-airbnb/README.md @@ -4,16 +4,30 @@ This package provides Airbnb's .eslintrc as an extensible shared config. ## Usage -### With React Style +We export three ESLint configurations for your usage. -1. `npm install --save-dev eslint-config-airbnb babel-eslint eslint-plugin-react` +### eslint-config-airbnb + +Our default export contains all of our ESLint rules, including EcmaScript 6+ +and React. It requires `eslint`, `babel-eslint`, and `eslint-plugin-react`. + +1. `npm install --save-dev eslint-config-airbnb babel-eslint eslint-plugin-react eslint` 2. add `"extends": "airbnb"` to your .eslintrc -### Without React Style +### eslint-config-airbnb/base -1. `npm install --save-dev eslint-config-airbnb babel-eslint ` +Lints ES6+ but does not lint React. Requires `eslint` and `babel-eslint`. + +1. `npm install --save-dev eslint-config-airbnb babel-eslint eslint` 2. add `"extends": "airbnb/base"` to your .eslintrc +### eslint-config-airbnb/legacy + +Lints ES5 and below. Only requires `eslint`. + +1. `npm install --save-dev eslint-config-airbnb eslint` +2. add `"extends": "airbnb/legacy"` to your .eslintrc + See [Airbnb's Javascript styleguide](https://github.com/airbnb/javascript) and the [ESlint config docs](http://eslint.org/docs/user-guide/configuring#extending-configuration-files) for more information.