1 module.exports = { 2 root: true, 3 parser: 'babel-eslint', 4 parserOptions: { 5 sourceType: 'module', 6 allowImportExportEverywhere: true //ignore eslint error: 'import' and 'export' may only appear at the top level 7 }, 8 env: { 9 browser: true, 10 node: true, 11 es6: true 12 }, 13 extends: 'eslint:recommended', 14 // required to lint *.vue files 15 plugins: ['html', 'vue'], 16 // add your custom rules here 17 //it is base on https://github.com/vuejs/eslint-config-vue 18 rules: { 19 'accessor-pairs': 2, 20 'arrow-spacing': [ 21 2, 22 { 23 before: true, 24 after: true 25 } 26 ], 27 'block-spacing': [2, 'always'], 28 'brace-style': [ 29 2, 30 '1tbs', 31 { 32 allowSingleLine: true 33 } 34 ], 35 camelcase: [ 36 0, 37 { 38 properties: 'always' 39 } 40 ], 41 'comma-dangle': [2, 'never'], 42 'comma-spacing': [ 43 2, 44 { 45 before: false, 46 after: true 47 } 48 ], 49 'comma-style': [2, 'last'], 50 'constructor-super': 2, 51 curly: [2, 'multi-line'], 52 'dot-location': [2, 'property'], 53 'eol-last': 2, 54 eqeqeq: [2, 'allow-null'], 55 'generator-star-spacing': [ 56 2, 57 { 58 before: true, 59 after: true 60 } 61 ], 62 'handle-callback-err': [2, '^(err|error)$'], 63 indent: [ 64 2, 65 2, 66 { 67 SwitchCase: 1 68 } 69 ], 70 'jsx-quotes': [2, 'prefer-single'], 71 'key-spacing': [ 72 2, 73 { 74 beforeColon: false, 75 afterColon: true 76 } 77 ], 78 'keyword-spacing': [ 79 2, 80 { 81 before: true, 82 after: true 83 } 84 ], 85 'new-cap': [ 86 2, 87 { 88 newIsCap: true, 89 capIsNew: false 90 } 91 ], 92 'new-parens': 2, 93 'no-array-constructor': 2, 94 'no-caller': 2, 95 'no-console': 'off', 96 'no-class-assign': 2, 97 'no-cond-assign': 2, 98 'no-const-assign': 2, 99 'no-control-regex': 0, 100 'no-delete-var': 2, 101 'no-dupe-args': 2, 102 'no-dupe-class-members': 2, 103 'no-dupe-keys': 2, 104 'no-duplicate-case': 2, 105 'no-empty-character-class': 2, 106 'no-empty-pattern': 2, 107 'no-eval': 2, 108 'no-ex-assign': 2, 109 'no-extend-native': 2, 110 'no-extra-bind': 2, 111 'no-extra-boolean-cast': 2, 112 'no-extra-parens': [2, 'functions'], 113 'no-fallthrough': 2, 114 'no-floating-decimal': 2, 115 'no-func-assign': 2, 116 'no-implied-eval': 2, 117 'no-inner-declarations': [2, 'functions'], 118 'no-invalid-regexp': 2, 119 'no-irregular-whitespace': 2, 120 'no-iterator': 2, 121 'no-label-var': 2, 122 'no-labels': [ 123 2, 124 { 125 allowLoop: false, 126 allowSwitch: false 127 } 128 ], 129 'no-lone-blocks': 2, 130 'no-mixed-spaces-and-tabs': 2, 131 'no-multi-spaces': 2, 132 'no-multi-str': 2, 133 'no-multiple-empty-lines': [ 134 2, 135 { 136 max: 1 137 } 138 ], 139 'no-native-reassign': 2, 140 'no-negated-in-lhs': 2, 141 'no-new-object': 2, 142 'no-new-require': 2, 143 'no-new-symbol': 2, 144 'no-new-wrappers': 2, 145 'no-obj-calls': 2, 146 'no-octal': 2, 147 'no-octal-escape': 2, 148 'no-path-concat': 2, 149 'no-proto': 2, 150 'no-redeclare': 2, 151 'no-regex-spaces': 2, 152 'no-return-assign': [2, 'except-parens'], 153 'no-self-assign': 2, 154 'no-self-compare': 2, 155 'no-sequences': 2, 156 'no-shadow-restricted-names': 2, 157 'no-spaced-func': 2, 158 'no-sparse-arrays': 2, 159 'no-this-before-super': 2, 160 'no-throw-literal': 2, 161 'no-trailing-spaces': 2, 162 'no-undef': 2, 163 'no-undef-init': 2, 164 'no-unexpected-multiline': 2, 165 'no-unmodified-loop-condition': 2, 166 'no-unneeded-ternary': [ 167 2, 168 { 169 defaultAssignment: false 170 } 171 ], 172 'no-unreachable': 2, 173 'no-unsafe-finally': 2, 174 'no-unused-vars': [ 175 2, 176 { 177 vars: 'all', 178 args: 'none' 179 } 180 ], 181 'no-useless-call': 2, 182 'no-useless-computed-key': 2, 183 'no-useless-constructor': 2, 184 'no-useless-escape': 0, 185 'no-whitespace-before-property': 2, 186 'no-with': 2, 187 'one-var': [ 188 2, 189 { 190 initialized: 'never' 191 } 192 ], 193 'operator-linebreak': [ 194 2, 195 'after', 196 { 197 overrides: { 198 '?': 'before', 199 ':': 'before' 200 } 201 } 202 ], 203 'padded-blocks': [2, 'never'], 204 quotes: [ 205 2, 206 'single', 207 { 208 avoidEscape: true, 209 allowTemplateLiterals: true 210 } 211 ], 212 semi: [2, 'never'], 213 'semi-spacing': [ 214 2, 215 { 216 before: false, 217 after: true 218 } 219 ], 220 'space-before-blocks': [2, 'always'], 221 'space-before-function-paren': [2, 'never'], 222 'space-in-parens': [2, 'never'], 223 'space-infix-ops': 2, 224 'space-unary-ops': [ 225 2, 226 { 227 words: true, 228 nonwords: false 229 } 230 ], 231 'spaced-comment': [ 232 2, 233 'always', 234 { 235 markers: [ 236 'global', 237 'globals', 238 'eslint', 239 'eslint-disable', 240 '*package', 241 '!', 242 ',' 243 ] 244 } 245 ], 246 'template-curly-spacing': [2, 'never'], 247 'use-isnan': 2, 248 'valid-typeof': 2, 249 'wrap-iife': [2, 'any'], 250 'yield-star-spacing': [2, 'both'], 251 yoda: [2, 'never'], 252 'prefer-const': 2, 253 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 254 'object-curly-spacing': [ 255 2, 256 'always', 257 { 258 objectsInObjects: false 259 } 260 ], 261 'array-bracket-spacing': [2, 'never'] 262 } 263 }
module.exports = {
root: true,
parser: 'babel-eslint',
parserOptions: {
sourceType: 'module',
allowImportExportEverywhere: true //ignore eslint error: 'import' and 'export' may only appear at the top level
},
env: {
browser: true,
node: true,
es6: true
},
extends: 'eslint:recommended',
// required to lint *.vue files
plugins: ['html', 'vue'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
'accessor-pairs': 2,
'arrow-spacing': [
2,
{
before: true,
after: true
}
],
'block-spacing': [2, 'always'],
'brace-style': [
2,
'1tbs',
{
allowSingleLine: true
}
],
camelcase: [
0,
{
properties: 'always'
}
],
'comma-dangle': [2, 'never'],
'comma-spacing': [
2,
{
before: false,
after: true
}
],
'comma-style': [2, 'last'],
'constructor-super': 2,
curly: [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
eqeqeq: [2, 'allow-null'],
'generator-star-spacing': [
2,
{
before: true,
after: true
}
],
'handle-callback-err': [2, '^(err|error)$'],
indent: [
2,
2,
{
SwitchCase: 1
}
],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [
2,
{
beforeColon: false,
afterColon: true
}
],
'keyword-spacing': [
2,
{
before: true,
after: true
}
],
'new-cap': [
2,
{
newIsCap: true,
capIsNew: false
}
],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [
2,
{
allowLoop: false,
allowSwitch: false
}
],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [
2,
{
max: 1
}
],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [
2,
{
defaultAssignment: false
}
],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [
2,
{
vars: 'all',
args: 'none'
}
],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [
2,
{
initialized: 'never'
}
],
'operator-linebreak': [
2,
'after',
{
overrides: {
'?': 'before',
':': 'before'
}
}
],
'padded-blocks': [2, 'never'],
quotes: [
2,
'single',
{
avoidEscape: true,
allowTemplateLiterals: true
}
],
semi: [2, 'never'],
'semi-spacing': [
2,
{
before: false,
after: true
}
],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [
2,
{
words: true,
nonwords: false
}
],
'spaced-comment': [
2,
'always',
{
markers: [
'global',
'globals',
'eslint',
'eslint-disable',
'*package',
'!',
','
]
}
],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
yoda: [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [
2,
'always',
{
objectsInObjects: false
}
],
'array-bracket-spacing': [2, 'never']
}
}