123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /*
- rigwild's personal ESLint configuration
- Using modern JavaScript syntax, very restrictive.
- Preferably use with autofix on save.
- This config is made for a Babel + Vue.js project (vue-cli).
- https://github.com/rigwild
- */
- // prettier-ignore
- module.exports = {
- parserOptions: {
- parser: 'babel-eslint',
- ecmaVersion: 2019,
- sourceType: 'module'
- },
- root: true,
- env: {
- node: true,
- es6: true
- },
- extends: [
- 'plugin:vue/recommended',
- '@vue/standard' // Optional, add "@vue/eslint-config-standard" as a devDependency
- ],
- rules: {
- // Possible Errors
- // The following rules point out areas where you might have made mistakes.
- 'comma-dangle': 1,
- 'no-cond-assign': 2,
- 'no-constant-condition': 2,
- 'no-control-regex': 2,
- 'no-debugger': 2,
- 'no-dupe-args': 2,
- 'no-dupe-keys': 2,
- 'no-duplicate-case': 2,
- 'no-empty': 2,
- 'no-ex-assign': 2,
- 'no-extra-boolean-cast': 2,
- 'no-extra-parens': 0,
- 'no-extra-semi': 2,
- 'no-func-assign': 2,
- 'no-inner-declarations': 2,
- 'no-invalid-regexp': 2,
- 'no-irregular-whitespace': 2,
- 'no-negated-in-lhs': 2,
- 'no-obj-calls': 2,
- 'no-regex-spaces': 2,
- 'no-sparse-arrays': 2,
- 'no-unreachable': 2,
- 'use-isnan': 2,
- 'valid-jsdoc': 2,
- 'valid-typeof': 2,
- // Best Practices
- // These are rules designed to prevent you from making mistakes.
- 'block-scoped-var': 0,
- 'complexity': 0,
- 'curly': 'off',
- 'default-case': 2,
- 'dot-notation': 2,
- 'eqeqeq': 2,
- 'guard-for-in': 2,
- 'no-alert': 2,
- 'no-caller': 2,
- 'no-div-regex': 2,
- 'no-else-return': 2,
- 'no-eq-null': 2,
- 'no-eval': 2,
- 'no-extend-native': 2,
- 'no-extra-bind': 2,
- 'no-fallthrough': 2,
- 'no-floating-decimal': 2,
- 'no-implied-eval': 2,
- 'no-iterator': 2,
- 'no-labels': 2,
- 'no-lone-blocks': 2,
- 'no-loop-func': 0,
- 'no-multi-spaces': 2,
- 'no-multi-str': 2,
- 'no-native-reassign': 2,
- 'no-new': 2,
- 'no-new-func': 2,
- 'no-new-wrappers': 2,
- 'no-octal': 2,
- 'no-octal-escape': 2,
- 'no-proto': 2,
- 'no-redeclare': 2,
- 'no-script-url': 2,
- 'no-self-compare': 2,
- 'no-sequences': 0,
- 'no-throw-literal': 2,
- 'no-void': 2,
- 'no-warning-comments': [0, { terms: ['todo', 'fixme'], location: 'start' }],
- 'no-with': 2,
- 'radix': 2,
- 'vars-on-top': 2,
- 'wrap-iife': 2,
- 'yoda': 2,
- // Strict Mode
- // These rules relate to using strict mode.
- 'strict': 0,
- // Variables
- // These rules have to do with variable declarations.
- 'no-catch-shadow': 2,
- 'no-delete-var': 2,
- 'no-label-var': 2,
- 'no-shadow': 2,
- 'no-shadow-restricted-names': 2,
- 'no-undef': 2,
- 'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
- 'no-use-before-define': 2,
- // Stylistic Issues
- // These rules are purely matters of style and are quite subjective.
- 'indent': [1, 2],
- 'brace-style': ['error', 'stroustrup'],
- 'camelcase': 1,
- 'comma-spacing': [1, { before: false, after: true }],
- 'comma-style': [1, 'last'],
- 'consistent-this': [1, '_this'],
- 'eol-last': 1,
- 'key-spacing': [1, { beforeColon: false, afterColon: true }],
- 'new-cap': [1, { newIsCap: true, capIsNew: false }],
- 'new-parens': 1,
- 'newline-after-var': 0,
- 'no-array-constructor': 1,
- 'no-mixed-spaces-and-tabs': 1,
- 'no-multiple-empty-lines': [1, { max: 2 }],
- 'no-trailing-spaces': 1,
- 'no-underscore-dangle': 0,
- 'quote-props': [1, 'consistent'],
- 'quotes': [1, 'single'],
- 'semi': ['error', 'never'],
- 'keyword-spacing': 'warn',
- 'space-before-function-paren': [1, { anonymous: 'always', named: 'never' }],
- 'space-in-parens': [1, 'never'],
- 'spaced-comment': 'warn',
- // ECMAScript 6
- // These rules are only relevant to ES6 environments and are off by default.
- 'no-var': 2,
- 'promise/param-names': 0,
- // Vue.js
- 'vue/max-attributes-per-line': 0,
- 'vue/attributes-order': 0,
- 'vue/singleline-html-element-content-newline': 0,
- 'vue/html-self-closing': [
- 'error',
- {
- html: {
- void: 'any',
- normal: 'any',
- component: 'always'
- },
- svg: 'always',
- math: 'always'
- }
- ]
- }
- }
|