JS代码检查工具ESLint介绍与使用方法(3)

{ "extends": [ "./node_modules/coding-standard/eslintDefaults.js", "./node_modules/coding-standard/.eslintrc-es6", "./node_modules/coding-standard/.eslintrc-jsx" ], "rules": { "eqeqeq": "warn" } }

配置忽略

可以通过在项目根目录创建一个 .eslintignore 文件告诉 ESLint 去忽略特定的文件和目录

.eslintignore 文件是一个纯文本文件,其中的每一行都是一个 glob 模式表明哪些路径应该忽略检测

例如,以下将忽略所有的 JavaScript 文件:

**/*.js

如果没有发现 .eslintignore 文件,也没有指定替代文件,ESLint 将在 package.json 文件中查找 eslintIgnore 键,来检查要忽略的文件

{ "name": "mypackage", "version": "0.0.1", "eslintConfig": { "env": { "browser": true, "node": true } }, "eslintIgnore": ["hello.js", "world.js"] }

NodeJS配置eslint规则

下面来介绍NodeJS环境下如何配置airbnb-base的eslint规则

1、本地安装eslint、eslint-config-airbnb-base、eslint-plugin-import

npm install --save-dev eslint npm install --save-dev eslint-config-airbnb-base npm install --save-dev eslint-plugin-import

注意: 最好使用npm,而不是cnpm安装。因为在使用本地安装的eslint时,会使用其安装路径。而npm和cnpm的安装路径不一致

2、安装成功后,package.json文件中增加如下字段

"devDependencies": { "eslint": "^4.19.1", "eslint-config-airbnb-base": "^12.1.0", "eslint-plugin-import": "^2.12.0" }

3、在根目录下设置.eslintrc.js配置文件

module.exports = { "extends": ["airbnb-base"], "env": { "es6": true, "node": true }, "rules": { "comma-dangle": ["error", "never"], // 要求或禁止末尾逗号:不允许逗号 "indent": ["error", 2], // JavaScript代码强制使用一致的缩进:2格缩进 "semi": ["error", "never"], // 不使用分号 "arrow-parens": ["error", "as-needed"], // 箭头函数的参数可以不使用圆括号 "linebreak-style": "off", // 取消换行符\n或\r\n的验证 "object-curly-newline": ["error", { "consistent": true }], // 花括号内的换行符不一定要格式一致 "function-paren-newline": "off", // 不验证函数括号内的换行 "import/extensions": "off", // 取消对文件扩展名的验证 "no-param-reassign": "off", // 允许对函数参数进行再赋值 "no-underscore-dangle": "off", // 允许在标识符中使用下划线 "no-use-before-define": "off", // 允许变量和函数在定义前使用 "no-unused-expressions": "off", // 允许使用未使用过的表达式,以此来支持a && a()的代码形式 "no-console": "off", // 启用console控制台 "consistent-return": "off", // 关闭函数中return的检测 "no-shadow": "off", // 可以使用同名变量, "newline-per-chained-call": "off", //取消方法链调用中的换行符的检测 "import/newline-after-import": "off" } }

4、在命令行工具中使用命令,对文件进行lint校验

PS D:\blog\api\node_modules\.bin> ./eslint ../../index.js D:\blog\api\index.js 16:1 error 'a' is not defined no-undef ✖ 1 problem (1 error, 0 warnings)

React使用eslint

1、安装eslint-config-airbnb配置合集

npm install --save-dev eslint-config-airbnb

Airbnb包括了以下三个插件

eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y

2、在根目录下创建.eslintrc.js配置文件

module.exports = { // 指定校验的ECMAScript的版本及特性 "parserOptions": { "ecmaVersion": 7, // ECMAScript版本,7为ES7 "sourceType": "module", //默认script,如果代码是ECMAScript模块,设置为module "ecmaFeatures": { // 使用额外的语言特性 "jsx": true // 启用JSX } }, // 当访问未定义的变量时,no-undef 规则将发出警告 // 指定脚本的运行环境。每种环境都有一组特定的预定义全局变量 "env": { "es6": true, "node": true, "browser": true, }, // 当访问未定义的变量时,no-undef 规则将发出警告 // 脚本在执行期间访问的额外的全局变量 "globals": { "document": true, "navigator": true, "window":true, "node":true }, // 使用第三方airbnb开发配置合集 "extends": "airbnb", // eslint-config-airbnb包括了以下3个插件 "plugins": [ "react", "jsx-a11y", "import" ], // 定义自己的规则 "rules": { "comma-dangle": ["error", "never"], // 要求或禁止末尾逗号:不允许逗号 "indent": ["error", 2], // JavaScript代码强制使用一致的缩进:2格缩进 "semi": ["error", "never"], // 不使用分号 "arrow-parens": ["error", "as-needed"], // 箭头函数的参数可以不使用圆括号 "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], //reajs文件的后缀名为.js或.jsx均可 "linebreak-style": "off", // 取消换行符\n或\r\n的验证 "object-curly-newline": ["error", { "consistent": true }], // 花括号内的换行符不一定要格式一致 "function-paren-newline": "off", // 不验证函数括号内的换行 "import/extensions": "off", // 取消对文件扩展名的验证 "import/no-unresolved": "off", // 取消自动解析路径,以此开启alias的别名路径设置 "no-shadow": "off", // 取消变量声明覆盖的验证,保证mapDispatchToProps的正确使用 "no-param-reassign": "off", // 允许对函数参数进行再赋值 "no-underscore-dangle": "off", // 允许在标识符中使用下划线 "no-use-before-define": "off", // 允许变量和函数在定义前使用 "no-unused-expressions": "off", // 允许使用未使用过的表达式,以此来支持a && a()的代码形式 "jsx-a11y/anchor-is-valid": [ "error", { "components": [ "Link" ], "specialLink": [ "to" ]}], // 允许正常地使用Link "import/no-extraneous-dependencies": "off", //使用history/createBrowserHistory引入包时,不会报错 "no-console": "off" // 启用console控制台 } };

Vue使用eslint

使用vue-cli创建项目时,如果使用eslint,会有如下图所示的选项,选择使用standard还是airbnb规范

以standard规范创建成功后,package.json文件,会出现如下字段

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/65f97a9e84dd9b66f3a13dd33a0b7362.html