通过pre-commit钩子运行eslint,在git提交代码前强制校验代码

作为开发人员,总少不了合作开发项目,每个人的习惯不同,风格不同,若不规范,最终导致代码五花八门,对后期维护人员来说痛苦不堪。若通过约定来进行代码规范,实现起来有点儿困难,于是,通过工具来进行约束显得尤为重要。
通过查阅资料了解到可以通过node的pre-commit模块在提交代码前来运行npm script。在npm script配置lint命令,然后配置到pre-commit模块中,代码提交前若校验不通过,则阻断提交。
安装pre-commit eslint babel-eslint
npm install pre-commit eslint babel-eslint --save-dev
package.json中配置npm script
"scripts": { "lint": "./node_modules/.bin/eslint ./src", "lintfix": "./node_modules/.bin/eslint ./src --fix" }
package.json配置pre-commit
"pre-commit": [ "lint" ]
根目录添加eslint配置文件,.eslintrc.js , 当然也可以通过eslint --init 来按照提示自动生成配置文件 以下eslint配置仅供参考
module.exports = { "env": { "browser": true, "commonjs": true, "es6": true, "node": true }, "parser": "babel-eslint", "extends": "eslint:recommended", "parserOptions": { "sourceType": "module" }, "rules": { "indent": [ "error", 4, { "SwitchCase": 1 } ], "linebreak-style": [ "error", "unix" ], "quotes": [ "error", "single" ], "semi": [ "error", "always" ], "keyword-spacing": [ 2, { "before": true, "after": true } ], "eqeqeq": 2 }, "globals": { //全局变量 } }
配置eslint忽略文件.eslintignore
node_modules // so on
其他eslint校验忽略方式
1、/* eslint-disable */ 2、/* eslint-disable no-alert, no-console */ 3、// eslint-disable-line 4、// eslint-disable-next-line
更多请参考 eslint
1条评论
您好,更换一下网站logo地址 https://lai.yuweining.cn/ning/logo.jpg