ESLint 是一个按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码风格,这对公司团队开发非常实用。
1.全局安装
如果你想使用ESLint适用于你所有的项目,建议全局安装ESLint
npm i -g eslint
初始化配置文件
./node_modules/.bin/eslint --init
2.局部安装
单个项目使用
npm i -D eslint
初始化配置文件
eslint --inint
至此,安装完成。
指定执行环境
"env": {
browser: true,
node: true,
},
指定全局变量
/* global __DEV__, fetch */
/* global __DEV__:true, fetch:true */
"globals": {
"__DEV__": true,
"fetch": true
},
规则
规则等级有三种:
例如:
/* eslint no-console: "off", no-undef: "error" */
/* eslint no-console: 0, no-undef: 2 */
"rules": {
"no-console": "off",
"no-undef": "off",
"no-useless-constructor": "off",
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": true,
"optionalDependencies": false,
"peerDependencies": false
}
],
"react/jsx-filename-extension": "off"
}
当然,也可以在注释中关闭规则
/* eslint-disable */
/* eslint-enable */
/* eslint-disable no-alert, no-console */
/* eslint-enable no-alert, no-console */
在package.json
文件中加入以下代码
"scripts": {
"lint": "eslint --ext .js ./src --fix",
}
命令行工具下执行yarn run lint
, 即会检测代码。
Prettier是代码格式化工具,能够统一个人或者团队的代码风格。
npm i -D prettier
在工程根目录下创建.prettierrc.js
文件,
module.exports = {
printWidth: 120, // 换行字符串阈值
semi: true, // 句末加分号
singleQuote: true, // 用单引号
trailingComma: 'none', // 最后一个对象元素加逗号
bracketSpacing: true, // 对象,数组加空格
jsxBracketSameLine: false, // jsx > 是否另起一行
arrowParens: 'avoid', // (x) => {} 是否要有小括号
requirePragma: false, // 是否要注释来决定是否格式化代码
proseWrap: 'preserve' // 是否要换行
};
插件
npm i -D eslint eslint-config-prettier eslint-plugin-prettier
配置.eslintrc.json
"extends": ["airbnb", "prettier", "plugin:prettier/recommended"],
"plugins": ["react", "prettier"],
在package.json文件中加入以下代码
"scripts": {
"prettier": "prettier --write src/**/*.js"
}
在命令行工具下执行 prettier --write src/**/*.js
, src
对应的是你文件夹
Pre-commit Hook是在Git
提交之前用来检查待提交代码是否有错误的工具。
npm i -D husky lint-staged pretty-quick
在package.json文件中加入以下代码
"scripts": {
"precommit": "pretty-quick --staged",
},
"lint-staged": {
"*.{js,json,md}": [
"prettier --write",
"git add"
],
"*.js": [
"yarn lint --fix",
"git add"
]
},
使用Git
提交代码的时候,会自动检测代码并进行格式化,如何有错误会终止push
"editor.formatOnSave": true,
"javascript.format.enable": false,
"prettier.eslintIntegration": true
当你保存时会自动修复一些空格缩进、单双引号及句末是否加;
的错误,但是你变量未声明等错误需要手动去修复。
效果图
刚开始使用ESLint的时候,你可能会遇到各种各样的红色波浪线错误。不要觉得莫名其妙,这说明你的代码规范有很多值得去补充修正的地方,好好去弄明白eslint
中的规则,形成良好的代码风格,这不管是对个人还是团队而言都是值得使用的。
附上Demo,感兴趣的可以看一看。