UNPKG

vue-cli-plugin-tea

Version:

为项目初始化提供更好的 lint 支持与更全面的目录结构

170 lines (169 loc) 3.63 kB
module.exports = { root: true, env: { node: true }, <%_ if (useTypeScript) { _%> extends: [ 'plugin:vue/essential', 'plugin:vue/strongly-recommended', 'plugin:vue/recommended', '@vue/standard', '@vue/typescript/recommended' ], parserOptions: { ecmaVersion: 2020 }, <%_ } else { _%> extends: [ 'plugin:vue/essential', 'plugin:vue/strongly-recommended', 'plugin:vue/recommended', '@vue/standard' ], parserOptions: { parser: 'babel-eslint' }, <%_ } _%> rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'space-before-function-paren': [ 'error', { anonymous: 'always', named: 'never', asyncArrow: 'always' } ], <%_ if (useTypeScript) { _%> '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/strict-boolean-expressions': 'off', '@typescript-eslint/member-delimiter-style': [ 'error', { multiline: { delimiter: 'comma', requireLast: false }, singleline: { requireLast: false } } ], '@typescript-eslint/no-inferrable-types': 'error', '@typescript-eslint/no-this-alias': [ 'error', { allowDestructuring: true } ], '@typescript-eslint/no-unnecessary-condition': 'off', <%_ } _%> 'vue/eqeqeq': 'error', 'vue/object-curly-spacing': 'error', 'vue/require-direct-export': 'error', 'vue/no-parsing-error': [ 'error', { 'x-invalid-end-tag': false } ], 'vue/max-attributes-per-line': [ 'error', { singleline: 2, multiline: { max: 1, allowFirstLine: false } } ], 'vue/match-component-file-name': [ 'error', { extensions: ['vue'], shouldMatchCase: false } ], 'vue/space-infix-ops': [ 'error', { int32Hint: false } ], 'vue/html-self-closing': [ 'error', { html: { void: 'always', normal: 'never', component: 'never' }, svg: 'always', math: 'always' } ], 'vue/order-in-components': [ 'error', { order: [ 'el', 'name', 'parent', 'functional', ['delimiters', 'comments'], ['components', 'directives', 'filters'], 'extends', 'mixins', 'inheritAttrs', 'model', ['inject', 'provide'], ['props', 'propsData'], 'fetch', 'asyncData', 'data', 'computed', 'watch', 'LIFECYCLE_HOOKS', 'methods', 'head', ['template', 'render'], 'renderError' ] } ] }, overrides: [ <%_ if (useTypeScript) { _%> { files: ['*.js', '*.vue'], rules: { '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-var-requires': 'off' } }, { files: ['*.ts', '*.tsx'], rules: { '@typescript-eslint/explicit-module-boundary-types': 'error' } }, { files: ['*.config.{j,t}s'], rules: { '@typescript-eslint/no-var-requires': 'off' } }, <%_ } _%> { files: [ '**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)' ], env: { jest: true } } ] }