​​​​​​ESlint 完整配置注解

ESlint基础知识

  • ESLint中规则第一个值是错误级别,可以使下面的值之一:
    • "off" or 0 - 关闭规则
    • "warn" or 1 - 将规则视为一个警告(不会影响退出码)
    • "error" or 2 - 将规则视为一个错误 (退出码为1)
  • ESLint启用推进规则
"extends": "eslint:recommended"
  • ESLint自动修复功能
eslint --fix
  • 常见.eslintrc配置文件解析
module.exports = {
  //此项是用来告诉eslint找当前配置文件不能往父级查找
  root: true,
  //此项是用来指定eslint解析器的,解析器必须符合规则,babel-eslint解析器是对babel解析器的包装使其与ESLint解析
  parser: 'babel-eslint',
  //此项是用来指定javaScript语言类型和风格,sourceType用来指定js导入的方式,默认是script,此处设置为module,指某块导入方式
  parserOptions: {
    // 设置 script(默认) 或 module,如果代码是在ECMASCRIPT中的模块
    sourceType: 'module',
    "ecmaVersion": 6,
    "ecmaFeatures": {
      "jsx": true
    }
  },
  // 此项指定环境的全局变量,下面的配置指定为浏览器环境
  env: {
    "browser": true,
    "node": true,
    "commonjs": true,
    "es6": true,
    "amd": true
  },
  
  // 此项是用来配置标准的js风格,就是说写代码的时候要规范的写,如果你使用vs-code我觉得应该可以避免出错
  extends: 'vue',
  // 此项是用来提供插件的,插件名称省略了eslint-plugin-,下面这个配置是用来规范html的
  plugins: [
    'html',
    "flow-vars", 
    "react"
  ],
  /* 
  下面这些rules是用来设置从插件来的规范代码的规则,使用必须去掉前缀eslint-plugin-
    主要有如下的设置规则,可以设置字符串也可以设置数字,两者效果一致
    "off" -> 0 关闭规则
    "warn" -> 1 开启警告规则
    "error" -> 2 开启错误规则
  */
  rules: {
    // 警告
    "no-extra-parens": 1, // 非必要的括号
    "no-empty": 1, // 块语句中的内容不能为空
    "no-use-before-define": [1, "nofunc"], // 未定义前不能使用
    "no-unused-vars": 1, // 不能有声明后未被使用的变量或参数
    "no-undef": 1, // 不可以 有未定义的变量
    // vue
    "flow-vars/define-flow-type": 1,
    "flow-vars/use-flow-type": 1,
    // react
    "react/jsx-uses-react": 2,
    "react/jsx-uses-vars": 2,
    // 代码风格
    "no-multi-spaces": 1, // 不能用多余的空格
    "key-spacing": [1, {  // 对象字面量中冒号的前后空格
      "beforeColon": false,
      "afterColon": true
    }],
    "block-scoped-var": 2, // 块语句中使用var
    "consistent-return": 2, // return 后面是否允许省略
    "accessor-pairs": 2, // 在对象中使用getter/setter
    "no-return-assign": [2, "always"], // return 语句中不能有赋值表达式
    "no-redeclare": [2, {   // 禁止重复声明变量
      "builtinGlobals": true
    }],
    "space-infix-ops": 2, // 中缀操作符周围要不要有空格
    "curly": 1, // 必须使用 if(){} 中的{}
    // common js
    "no-duplicate-imports": 1
  }
}

常用ESlint ruler

"no-caller": 1,//禁止使用arguments.caller或arguments.callee
    "no-dupe-keys": 2,//在创建对象字面量时不允许键重复 {a:1,a:1}
    "no-empty": 2,//块语句中的内容不能为空
    "no-eq-null": 2,//禁止对null使用==或!=运算符
    "no-eval": 1,//禁止使用eval
    "no-extra-parens": 2,//禁止非必要的括号
    "no-extra-semi": 2,//禁止多余的冒号
    "no-func-assign": 2,//禁止重复的函数声明
    "no-inline-comments": 0,//禁止行内备注
    "no-label-var": 2,//label名不能与var声明的变量名相同
    "no-mixed-spaces-and-tabs": [2, false],//禁止混用tab和空格
    "linebreak-style": [0, "windows"],//换行风格
    "no-multi-spaces": 1,//不能用多余的空格
    "no-multiple-empty-lines": [1, {"max": 2}],//空行最多不能超过2行
    "no-redeclare": 2,//禁止重复声明变量
    "no-return-assign": 1,//return 语句中不能有赋值表达式
    "no-self-compare": 2,//不能比较自身
    "no-sparse-arrays": 2,//禁止稀疏数组, [1,,2]
    "no-trailing-spaces": 1,//一行结束后面不要有空格
    "no-this-before-super": 0,//在调用super()之前不能使用this或super
    "no-undef": 1,//不能有未定义的变量
    "no-underscore-dangle": 1,//标识符不能以_开头或结尾
    "no-unused-vars": [2, {"vars": "all", "args": "after-used"}],//不能有声明后未被使用的变量或参数
    "no-use-before-define": 2,//未定义前不能使用
    "no-var": 0,//禁用var,用let和const代替
    "array-bracket-spacing": [2, "never"],//是否允许非空数组里面有多余的空格
    "arrow-parens": 0,//箭头函数用小括号括起来
    "arrow-spacing": 0,//=>的前/后括号
    "accessor-pairs": 0,//在对象中使用getter/setter
    "camelcase": 2,//强制驼峰法命名
    "consistent-this": [2, "that"],//this别名
    "default-case": 2,//switch语句最后必须有default
    "eqeqeq": 2,//必须使用全等
    "func-style": [0, "declaration"],//函数风格,规定只能使用函数声明/函数表达式
    "indent": [2, 4],//缩进风格

目录规范

├── build                      // 构建相关  
├── config                     // 配置相关  
├── src                        // 源代码  
│   ├── api                    // 所有请求  
│   ├── assets                 // 主题 字体等静态资源  
│   ├── components             // 全局公用组件  
│   ├── directive              // 全局指令  
│   ├── filters                // 全局 filter  
│   ├── icons                  // 项目所有 svg icons  
│   ├── lang                   // 国际化 language  
│   ├── mock                   // 项目mock 模拟数据  
│   ├── router                 // 路由  
│   ├── store                  // 全局 store管理  
│   ├── styles                 // 全局样式  
│   ├── utils                  // 全局公用方法  
│   ├── vendor                 // 公用vendor  
│   ├── views                  // views 所有页面  
│   ├── App.vue                // 入口页面  
│   ├── main.js                // 入口文件 加载组件 初始化等  
│   └── permission.js          // 权限管理  
├── static                     // 第三方不打包资源  
│   └── Tinymce                // 富文本  
├── .babelrc                   // babel-loader 配置  
├── .eslintrc.js               // eslint 配置项  
├── .gitignore                 // git 忽略项  
├── .travis.yml                // 自动化CI配置  
├── favicon.ico                // favicon图标  
├── index.html                 // html模板  
└── package.json               // package.json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值