1.全局安装
$ npm install -g eslint
2.初始化一个配置文件,得到一份文件名为 .eslintrc.js
的配置文件
eslint --init
3.配置.eslintrc.js
文件
// https://cn.eslint.org/docs/rules/ // /* * "off"或者0,不启用这个规则 * "warn"或者1,出现问题会有警告 * "error"或者2,出现问题会报错 */ module.exports = { root: true, //此项是用来告诉eslint找当前配置文件不能往父级查找 env: { //环配置 如 "browser": true, node: true, node: true, "browser": true, "commonjs": true, "es6": true, "jquery": true }, extends: [ 'plugin:vue/essential', '@vue/airbnb', ], rules: { 'array-callback-return': 1, //return 后面是否允许省略 "arrow-parens": ["warn", "建议不省略圆括号"], // 箭头函数的参数可以不使用圆括号 'consistent-return': 0, //要求 return 语句要么总是指定返回的值,要么不指定 'camelcase': 1, //强制驼峰法命名 'eqeqeq': 0, //强制全等( === 和 !==) 'func-names': 0, //函数表达式必须有名字 "global-require": 0, // 取消对require的验证,使得可以使用require来加载图片的相对路径 "import/no-unresolved": 0, // 取消自动解析路径,以此开启alias的别名路径设置 'import/extensions': 0, // 取消对文件扩展名的验证 'indent': 'off', //缩进风格(强制使用一致的缩进) "linebreak-style": 0, // 取消换行符\n或\r\n的验证() 'max-len': 0, //字符串最大长度 "no-unused-vars": 1, //禁止出现未使用过的变量 "no-redeclare": 1, //禁止多次声明同一变量 'no-use-before-define': 1, //禁止在变量定义之前使用它们 "no-unused-expressions": 0, // 允许使用未使用过的表达式,以此来支持a && a()的代码形式 'no-restricted-syntax': 1, //禁用特定的语法 'no-plusplus': 0, //禁止使用++,-- 'no-underscore-dangle': 0, // 允许在标识符中使用下划线 'no-param-reassign': 0, // 禁止对 function 的参数进行重新赋值 'no-nested-ternary': 0, // 禁止嵌套三元表达式 'no-else-return': 0, //禁止 if 语句中 return 语句之后有 else 块 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-shadow': [1, { //外部作用域中的变量不能与它所包含的作用域中的变量或参数同名 "allow": ["resolve", "reject", "done", "cb"] }], 'prefer-rest-params': 1, //要求使用剩余参数而不是 arguments 'prefer-arrow-callback': 0, //要求回调函数使用箭头函数 'prefer-const': 1, //首选const "semi": false, // 使用分号, 默认true "singleQuote": true, // 使用单引号, 默认false(在jsx中配置无效, 默认都是双引号) "tabWidth": 4, // tab缩进大小,默认为4 'template-curly-spacing': 'off', //要求或禁止模板字符串中的嵌入表达式周围空格的使用 // no-var 'no-var': 'error', // 要求或禁止 var 声明中的初始化 'init-declarations': 2, // 强制使用单引号 'quotes': ['error', 'single'], // 要求或禁止使用分号而不是 ASI 'semi': ['error', 'never'], // 禁止不必要的分号 'no-extra-semi': 'error', // 强制使用一致的换行风格 'linebreak-style': ['error', 'unix'], // 空格2个 'indent': ['error', 2, {'SwitchCase': 1}], // 指定数组的元素之间要以空格隔开(,后面), never参数:[ 之前和 ] 之后不能带空格,always参数:[ 之前和 ] 之后必须带空格 'array-bracket-spacing': [2, 'never'], // 在块级作用域外访问块内定义的变量是否报错提示 'block-scoped-var': 0, // if while function 后面的{必须与if在同一行,java风格。 'brace-style': [2, '1tbs', {'allowSingleLine': true}], // 双峰驼命名格式 'camelcase': 2, // 数组和对象键值对最后一个逗号, never参数:不能带末尾的逗号, always参数:必须带末尾的逗号, 'comma-dangle': [2, 'never'], // 控制逗号前后的空格 'comma-spacing': [2, {'before': false, 'after': true}], // 控制逗号在行尾出现还是在行首出现 'comma-style': [2, 'last'], // 圈复杂度 'complexity': [2, 9], // 以方括号取对象属性时,[ 后面和 ] 前面是否需要空格, 可选参数 never, always 'computed-property-spacing': [2, 'never'], // TODO 关闭 强制方法必须返回值,TypeScript强类型,不配置 // 'consistent-return': 0 }, parserOptions: { parser: 'babel-eslint', }, };