what
使用 eslint 和 prettie 再配合 husky 提高前端开发规范。
why
平时的开发中,开发规范必不可少,手动修改规范既不可靠,也非常繁琐,所以可以利用 eslint 和 prettie 自动修复以及规范化代码。
再配合 husky ,当开发者 commit 的时候,会自动校验,且尝试自动修复代码,一旦修复失败,则会放弃代码提交。
how
安装以下几个依赖:
// package.json
{
// ...
// 忽略其他代码
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"lint": "lint-staged"
},
"dependencies": {
"eslint": "^7.25.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-config-prettier": "^8.3.0",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-react": "^7.23.2",
"husky": "^6.0.0",
"lint-staged": "^10.5.4",
"module-alias": "^2.2.2",
"prettier": "^2.2.1"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"**/*.js": [
"eslint --fix",
"git add"
]
},
"_moduleAliases": {
"@root": ".",
"@lib": "./lib"
}
}
配置 .eslintrc.js
module.exports = {
// 使用 airbnb, prettier 推荐的规范
extends: ['airbnb', 'plugin:prettier/recommended'],
parserOptions: {
// 使用 es6
ecmaVersion: 6,
sourceType: 'module',
},
// 自定义规则
rules: {
'arrow-body-style': 0,
strict: 0,
'no-console': 0,
'func-names': 0,
'space-before-function-paren': 0,
'no-param-reassign': 0,
'import/no-dynamic-require': 0,
'global-require': 0,
'consistent-return': 0,
},
// 配置别名
settings: {
'import/resolver': {
alias: {
map: [['@', '.']],
extensions: ['.js'],
},
},
},
};
配置好之后,安装 vscode 插件 eslint,这样可以在项目编译前检查错误,另外需要重启 vscode 使配置生效。
接下来配置 husky,安装依赖后运行以下命令:
# husky v6 版本是需要先安装的,会在项目下生成 .husky 目录
node_modules/.bin/husky install
# 添加 pre-commit 钩子
node_modules/.bin/husky set .husky/pre-commit "npm run lint"
到此为止,项目就配置完了,接下来可以测试一下,修改一个文件,然后 commit 的时候,就会自动运行 npm run lint 了。
!注意如果 husky 没生效,一定要确认 git 是在 node_modules/.bin/husky set .husky/pre-commit “npm run lint” 之前初始化的。
总结
添加项目规范,可以保证项目的格式统一,养成良好的开发习惯。
(完)
作者: Kavience
本文链接: http://www.kavience.com/frontend/eslint-and-prettie-cooperate-with-husky-to-improve-frontend-development-specifications.html
转载请注明:《Eslint和prettie配合husky提高前端开发规范》转自 http://www.kavience.com/frontend/eslint-and-prettie-cooperate-with-husky-to-improve-frontend-development-specifications.html,原作者:Kavience
版权声明: 自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)