vue .eslintrc.js config


module.exports = {
  root: true,
  parserOptions: {
    parser: 'babel-eslint',
    sourceType: 'module'
  },
  env: {
    browser: true,
    node: true,
    es6: true,
  },
  extends: ['plugin:vue/recommended', 'eslint:recommended'],

  // add your custom rules here
  //it is base on https://github.com/vuejs/eslint-config-vue
  // rules: {
  //   "vue/max-attributes-per-line": [2, {
  //     "singleline": 10,
  //     "multiline": {
  //       "max": 1,
  //       "allowFirstLine": false
  //     }
  //   }],
  //   "vue/singleline-html-element-content-newline": "off",
  //   "vue/multiline-html-element-content-newline": "off",
  //   "vue/name-property-casing": ["error", "PascalCase"],
  //   "vue/no-v-html": "off",
  //   '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': ["error", "always", {"null": "ignore"}],
  //   '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'],
  //   'eqeqeq': ['off']
  // }
  // add your custom rules here
  rules: {
    /**
     *              
     */
    "no-cond-assign": ["error", "always"], //                
    // "no-console": ["error", { allow: ["warn", "error"] }], //    console
    "no-constant-condition": ["error", { "checkLoops": true }], //              
    "no-control-regex": ["error"], //                
    "no-dupe-args": ["error"], //    function          
    "no-dupe-keys": ["error"], //               key
    "no-duplicate-case": ["error"], //         case   
    "no-empty": ["error", { "allowEmptyCatch": true }], //         
    "no-empty-character-class": ["error"], //                
    "no-ex-assign": ["error"], //     catch          
    "no-extra-boolean-cast": ["error"], //           
    "no-extra-semi": ["error"], //         
    "no-func-assign": ["warn"], //     function       
    "no-inner-declarations": ["error"], //                 function   
    "no-invalid-regexp": ["error", { "allowConstructorFlags": [] }], //    RegExp                   
    "no-irregular-whitespace": ["error"], //                  
    "no-obj-calls": ["error"], //              
    "no-regex-spaces": ["error"], //                  
    "no-sparse-arrays": ["error"], //       
    "no-unexpected-multiline": ["error"], //               
    "no-unsafe-finally": ["error"], //     finally            
    "no-unsafe-negation": ["error"], //                     
    "use-isnan": ["error"], //      isNaN()    NaN

    /**
     *     
     */
    "default-case": ["error"], //    switch      default   
    "dot-notation": ["error"], //           
    "eqeqeq": ["warn"], //      ===   !==
    "no-caller": ["error"], //    arguments.caller   arguments.callee
    "no-case-declarations": ["error"], //      case          
    "no-empty-function": ["error"], //        
    "no-empty-pattern": ["error"], //          
    "no-eval": ["error"], //    eval()
    "no-global-assign": ["error"], //                    
    // "no-magic-numbers": ["error", { "ignoreArrayIndexes": true }], //       
    "no-redeclare": ["error", { "builtinGlobals": true }], //         
    "no-self-assign": ["error", { props: true }], //       
    "no-unused-labels": ["error"], //           
    "no-useless-escape": ["error"], //           
    "radix": ["error"], //    parseInt()      

    /**
     *     
     */
    "no-delete-var": ["error"], //       
    "no-undef": ["error"], //         ,      /*global */       
    "no-unused-vars": ["error"], //            
    "no-use-before-define": ["error"], //              

    /**
     *     
     */
    "array-bracket-newline": ["error", { "multiline": true }], //                 
    "array-bracket-spacing": ["error", "never"], //               2
    "block-spacing": ["error", "never"], //                       
    "brace-style": ["error", "1tbs",], //                  
    "comma-dangle": ["error", "never"], //          
    "comma-spacing": ["error", { "before": false, "after": true }], //               
    "comma-style": ["error", "last"], //            
    "computed-property-spacing": ["error", "never"], //                     
    "consistent-this": ["error", "that"], //               ,         
    "eol-last": ["error", "always"], //              
    "func-call-spacing": ["error", "never"], //                     
    "func-names": ["error", "always"], //            function    
    "func-style": ["error", "declaration", { "allowArrowFunctions": true }], //         function       
    "function-paren-newline": ["error", "multiline"], //                
    "implicit-arrow-linebreak": ["error", "beside"], //                
    "indent": ["error", 2, { "SwitchCase": 1 }], //       
    "jsx-quotes": ["error", "prefer-double"], //     JSX                
    "key-spacing": ["error", { "beforeColon": false, "afterColon": true }], //                         
    // "line-comment-position": ["error", { "position": "above", "ignorePattern": "ETC" }], //         
    "linebreak-style": ["error", "unix"], //      
    "max-depth": ["error", 4], //             
    "max-nested-callbacks": ["error", 3], //             
    "max-params": ["error", 6], //                 
    "multiline-comment-style": ["error", "starred-block"], //              
    "multiline-ternary": ["error", "always-multiline"], //                
    "new-cap": ["error", { "capIsNew": false }], //            
    "no-array-constructor": ["error"], //    Array     
    "no-mixed-operators": ["error"], //             
    "no-mixed-spaces-and-tabs": ["error"], //       tab      
    "no-multiple-empty-lines": ["error"], //         
    "no-new-object": ["error"], //    Object      
    "no-tabs": ["error"], //    tab
    "no-trailing-spaces": ["error", { "skipBlankLines": false, "ignoreComments": false }], //       
    "no-whitespace-before-property": ["error"], //         
    "nonblock-statement-body-position": ["error", "beside"], //          
    "object-curly-spacing": ["error", "never"], //               
    "operator-linebreak": ["error", "after"], //              
    "quotes": ["error", "single"], //      
    // "semi": ["error", "always"], //             ASI
    // "semi-spacing": ["error", { "before": false, "after": true }], //                 
    "space-before-function-paren": ["error", "never"], //     function             
    "space-in-parens": ["error", "never"], //               
    "space-infix-ops": ["error"], //           
    "space-unary-ops": ["error", { "words": true, "nonwords": false }], //                  
    "spaced-comment": ["error", "always"], //        //   /*        
    /**
     * ECMAScript 6
     */
    "arrow-spacing": ["error", { "before": true, "after": true }], //                   
    "no-var": ["error"], //      let   const     var
    "object-shorthand": ["error", "always"], //                       
    "prefer-arrow-callback": ["error", { "allowNamedFunctions": false }], //             
  }
}