From 52f1b967525ca3f077aa477f1b7e11ee6e710127 Mon Sep 17 00:00:00 2001 From: foray1010 Date: Wed, 1 Feb 2017 15:49:03 +0800 Subject: [PATCH] 3.3.0: Add vue support --- package.json | 4 +++- react.js | 19 +------------------ rules/frontend.js | 31 +++++++++++++++++++++++++++++++ vue.js | 30 ++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 19 deletions(-) create mode 100644 rules/frontend.js create mode 100644 vue.js diff --git a/package.json b/package.json index 6689580..19bcad2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "eslint-config-aftership", "description": "AfterShip ESLint config (modified from Airbnb)", - "version": "3.2.1", + "version": "3.3.0", "homepage": "https://github.com/AfterShip/eslint-config-aftership", "author": { "name": "AfterShip", @@ -28,6 +28,7 @@ "babel-eslint": "^7.1.1", "eslint": "^3.12.1", "eslint-plugin-babel": "^3.3.0", + "eslint-plugin-html": "^2.0.0", "eslint-plugin-import": "^2.1.0", "eslint-plugin-jsx-a11y": "^2.2.3", "eslint-plugin-react": "^6.6.0" @@ -37,6 +38,7 @@ "eslint": "^3.12.1", "eslint-config-airbnb": "13.0.0", "eslint-plugin-babel": "^3.3.0", + "eslint-plugin-html": "^2.0.0", "eslint-plugin-import": "^2.1.0", "eslint-plugin-jsx-a11y": "^2.2.3", "eslint-plugin-react": "^6.6.0", diff --git a/react.js b/react.js index 26307a2..794b55e 100644 --- a/react.js +++ b/react.js @@ -6,6 +6,7 @@ module.exports = extendConfig({ extends: [ 'eslint-config-airbnb', 'eslint-config-aftership/rules/main', + 'eslint-config-aftership/rules/frontend', 'eslint-config-aftership/rules/camelcase' ], parserOptions: { @@ -14,25 +15,7 @@ module.exports = extendConfig({ jsx: true } }, - env: { - commonjs: true, - node: false, - webextensions: true - }, - globals: { - console: false, // for console.log - process: false, // for process.env.NODE_ENV - window: false - }, rules: { - // we alias some local folders to modules, for example `project-root/src/app` => `app` - // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/imports-first.md - 'import/imports-first': 'off', - - // it fails with inject-loader - // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unresolved.md - 'import/no-unresolved': 'off', - // for array, sometime it is not all the same type // for object, it is very painful to define the object structure every time // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-prop-types.md diff --git a/rules/frontend.js b/rules/frontend.js new file mode 100644 index 0000000..bb53909 --- /dev/null +++ b/rules/frontend.js @@ -0,0 +1,31 @@ +'use strict'; + +module.exports = { + env: { + commonjs: true, + node: false, + webextensions: true + }, + plugins: [ + 'html' + ], + settings: { + 'html/indent': 'tab', + 'html/report-bad-indent': 'error' + }, + globals: { + console: false, // for console.log + document: false, + process: false, // for process.env.NODE_ENV + window: false + }, + rules: { + // we alias some local folders to modules, for example `project-root/src/app` => `app` + // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/imports-first.md + 'import/imports-first': 'off', + + // it fails with inject-loader + // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unresolved.md + 'import/no-unresolved': 'off' + } +}; diff --git a/vue.js b/vue.js new file mode 100644 index 0000000..5bd22bf --- /dev/null +++ b/vue.js @@ -0,0 +1,30 @@ +'use strict'; + +const extendConfig = require('./lib/extend_config'); + +module.exports = extendConfig({ + extends: [ + 'eslint-config-airbnb/base', + 'eslint-config-aftership/rules/main', + 'eslint-config-aftership/rules/frontend', + 'eslint-config-aftership/rules/camelcase' + ], + parserOptions: { + ecmaFeatures: { + experimentalObjectRestSpread: true + } + }, + settings: { + 'import/extensions': ['.js', '.vue'], + 'import/resolver': { + node: { + extensions: ['.js', '.vue', '.json'] + } + } + }, + rules: { + // this two doesn't work in vue + 'import/no-named-as-default': 'off', + 'import/no-named-as-default-member': 'off' + } +});