module.exports = {
  root: true,
  env: {
    browser: true,
    node: true,
    es6: true,
    // 使用setup语法糖
    'vue/setup-compiler-macros': true,
  },
  extends: ['airbnb-base', 'plugin:import/recommended', 'plugin:vue/vue3-essential', 'plugin:vue/vue3-recommended', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
  parser: 'vue-eslint-parser',
  parserOptions: {
    parser: '@typescript-eslint/parser',
    sourceType: 'module',
  },
  plugins: ['vue', '@typescript-eslint'],
  rules: {
    'import/extensions': [2, 'never', { 'web.js': 'never', json: 'never' }],
    '@typescript-eslint/no-explicit-any': ['off'],
    'import/no-extraneous-dependencies': [2, { devDependencies: true }],
    'import/no-unresolved': 'off',
    '@typescript-eslint/no-var-requires': 'off',
    'prettier/prettier': 'off',
    singleQuote:false,
    semi:'never',
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    eqeqeq: 'off', // 要求使用 === 和 !==
    indent: ['error', 2, { SwitchCase: 1 }], // 缩进风格
    'newline-after-var': 'error', // 变量声明后是否需要空一行
    'no-eq-null': 'error', // 禁止对null使用==或!=运算符
    'no-eval': 'warn', // 禁止使用eval
    'no-var': 'error',
    'no-multi-spaces': 'warn', // 不能用多余的空格
    'no-trailing-spaces': 'warn', // 一行结束后面不要有空格
    'no-undef': 'warn', // 不能有未定义的变量
    'semi-spacing': 'error', // 强制分号后面有空格
    '@typescript-eslint/semi': 'error',
    quotes: ['error', 'single'],
    'arrow-spacing': 'error', // 要求箭头函数的=>前后有空格
  },
};
