Vue 项目 ESlint 配置

.eslintrc.js

/**
 * 使用 vue cli 3 创建项目时默认生成 .eslint.js 文件及默认配置,
 * 修改对应的选项已适合 vue 项目开发
 */
const path = require('path');
module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: [
    'plugin:vue/essential',
    '@vue/airbnb',
  ],
  settings: {
    // vscode eslint 插件处理别名定义时无法正确显示的问题
    'import/resolver': {
      webpack: {
        config: {
          resolve: {
            alias: {
              '@': path.resolve('src'),
            }
          }
        }
      },
    },
  },
  rules: {
    // 禁用 console
    'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    // 禁用 debugger
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    // 大括号内是否允许不必要的空格
    'object-curly-spacing': [0, 'never'],
    // 要求或禁止使用拖尾逗号
    // 'comma-dangle': 0,
    // 要求或禁止在注释前有空白
    // 'spaced-comment': 0,
    // 要求或禁止块内填充
    'padded-blocks': 0,
    // 要求或禁止命名的 function 表达式
    // 'func-names': 0,
    // 强制在花括号中使用一致的空格
    'object-curly-spacing': 0,
    // 禁止出现未使用过的变量
    // 'no-unused-vars': 1,
    // 禁止定义前使用
    // 'no-use-before-define': 2,
    // 要求或禁止文件末尾保留一行空行
    // 'eol-last': 0,
    // 要求使用 const 声明那些声明后不再被修改的变量
    'prefer-const': 0,
    // 禁用行尾空白
    // 'no-trailing-spaces': 0,
    // 禁止在 else 前有 return
    // 'no-else-return': 0,
    // 要求构造函数首字母大写
    'new-cap': 0,
    // 强制行的最大长度
    'max-len': [0, 80, 2],
    // 要求箭头函数体使用大括号
    // 'arrow-body-style': 0,
    // 要求使用 === 和 !==
    // 'eqeqeq': 0,
    // 要求对象字面量属性名称使用引号
    // 'quote-props': 0,
    // 大括号风格要求
    // 'brace-style': 0,
    // 需要约束 for-in Object.prototype.hasOwnProperty.call(foo, key)
    // 'guard-for-in': 0,
    // 禁止使用特定的语法
    'no-restricted-syntax': 0,
    // 建议使用模板而非字符串连接
    // 'prefer-template': 0,
    // 禁止扩展原生对象
    // 'no-extend-native': 0,
    // 要求使用一致的 return 语句
    // 'consistent-return': 0,
    // 禁止标识符中有悬空下划线
    'no-underscore-dangle': ["error", { "allow": ["_id"] }],
    // 禁止在正则表达式中使用控制字符
    // 'no-control-regex': 0,
    // 禁止使用无关的依赖包
    'import/no-extraneous-dependencies': ['error', {'devDependencies': ['**/*.test.js', '**/*.spec.js', '**/*.mock.js', '**/*vue.config.js']}],
  },
  parserOptions: {
    parser: 'babel-eslint',
  },
};

你可能感兴趣的:(vue)