module.exports = {
  //此项是用来告诉eslint找当前配置文件不能往父级查找
  root: true,
  //此项是用来指定eslint解析器的,解析器必须符合规则,babel-eslint解析器是对babel解析器的包装使其与ESLint解析
  parser: 'babel-eslint',
  //此项是用来指定javaScript语言类型和风格,sourceType用来指定js导入的方式,默认是script,此处设置为module,指某块导入方式
  parserOptions: {
    sourceType: 'module'
  },
  //此项指定环境的全局变量,下面的配置指定为浏览器环境
  env: {
    browser: true,
  },
  // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
  // 此项是用来配置标准的js风格,就是说写代码的时候要规范的写,如果你使用vs-code我觉得应该可以避免出错
  extends: 'standard',
  // required to lint *.vue files
  // 此项是用来提供插件的,插件名称省略了eslint-plugin-,下面这个配置是用来规范html的
  plugins: [
    'html'
  ],
  // add your custom rules here
  // 下面这些rules是用来设置从插件来的规范代码的规则,使用必须去掉前缀eslint-plugin-
  // 主要有如下的设置规则,可以设置字符串也可以设置数字,两者效果一致
  // "off" -> 0 关闭规则
  // "warn" -> 1 开启警告规则
  //"error" -> 2 开启错误规则
  // 了解了上面这些,下面这些代码相信也看的明白了
  rules: {
    "indent":["off",2],
    "no-console": "error", // 禁止console
    "no-alert": "error",  // 禁止alert,conirm等
    "no-debugger": "error",  // 禁止debugger
    "semi": 0,   // 禁止分号
    "eqeqeq": "off",//
    "no-tabs": "error", // 禁止使用tab
    "no-unreachable": "error", // 当有不能执行到的代码时
    "eol-last": "error", // 文件末尾强制换行
    "no-new": "error", // 禁止在使用new构造一个实例后不赋值
    "quotes": "error",  // 引号类型 `` "" ''
    "no-unused-vars": 0, // 不能有声明后未被使用的变量
    "no-trailing-spaces": "error", // 一行结束后面不要有空格
    "space-before-function-paren": 0, // 函数定义时括号前面要不要有空格
    "no-undef": "error", // 不能有未定义的变量,定义之前必须有var或者let
    "curly": ["error", "all"],  // 必须使用 if(){} 中的{}
    'arrow-parens': "error", // 箭头函数的参数要有()包裹
    'generator-star-spacing': "error", // allow async-await
    "space-before-function-paren": 0,  // 禁止函数名前有空格,如function Test (aaa,bbb)
    "space-in-parens": 0, // 禁止圆括号有空格,如Test( 2, 3 )
    "space-infix-ops": 0, //在操作符旁边必须有空格, 如 a + b而不是a+b
    "space-before-blocks": 0, // 语句块之前必须有空格 如 ) {}
    "spaced-comment":0, // 注释前必须有空格
    "arrow-body-style": ["error", "always"], // 要求箭头函数必须有大括号 如 a => {}
    "arrow-parens": ["error", "always"], //要求箭头函数的参数必有用括弧包住,如(a) =>{}
    "arrow-spacing": ["error", { "before": true, "after": true }], // 定义箭头函数的箭头前后都必须有空格
    "no-const-assign": "error",    // 禁止修改const变量
    "template-curly-spacing": ["error", "never"], // 禁止末班字符串中的{}中的变量出现空格,如以下错误`${ a }`
    "no-multi-spaces": 0, // 禁止多个空格,只有一个空格的地方必须只有一个
    "no-whitespace-before-property": 0, // 禁止属性前有空格,如obj. a
    "keyword-spacing":0,//关键字前后必须有空格 如 } else {
    "no-useless-escape": 0,// 禁止不必要的转义字符

},
}