vue+eslint++husky+commitLint+lint-satged实现代码提交预检测与约定提交,记录

238 阅读1分钟

1.项目安装eslit

  • 安装eslint,运行命令npm install eslint -D
  • 配置eslit,此处为简略版配置
module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: ["plugin:vue/essential", "eslint:recommended"],
  parserOptions: {
    parser: "@babel/eslint-parser",
  },
  rules: {
    "no-debugger": "off",
    semi: 1, // 语句强制分号结尾
  },
};

2.配置lint-staged

  • 安装lint-staged,运行命令npm install lint-staged -D
  • 在提交代码之前,进行代码规则检查能够确保进入git库的代码都是符合代码规则的。但是整个项目上运行lint速度会很慢,lint-staged能够让lint只检测暂存区的文件,所以速度很快。lint-staged不会改变或者格式化代码,只是获取到暂存区的文件。git commit时触发pre-commit钩子,运行lint-staged命令,对src执行eslint命令。eslint要提前配置好。 lint-staged配置
"lint-staged": {
   "src/**/*.{jsx,txs,ts,js,json,css,vue}": [
    "eslint --fix", 
    "git add" 
  ]
  },

3.commitlint

安装commitlint,,制定提交规范(采用默认),运行命令npm install --save-dev @commitlint/config-conventional @commitlint/cli

4.husky

  • 安装husky,运行命令npm install husky -D
  • 首先使用husky install 创建husky的相关目录和文件。
  • 然后创建文件,并设置执行命令npx husky add .husky/pre-commit "npm run lint-staged",上面创建了一个pre-commit的文件,并把npm run lint-staged作为文件内容。这样每次执行git commit的时候会先执行pre-commit 中的命令。
  • 运行命令 npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'