前端自动化工具&&前端代码规范

项目要使用git进行代码提交时,使用叫pre-commit的git钩子,在调用git commit 命令时自动执行某些脚本检测代码,若检测出错,则阻止commit代码,也就无法push,保证了出错代码只在我们本地,不会把问题提交到远程仓库

【1】 安装husky

husky:husky提供了一套git hook,我们可以在commit前进行我们的代码检查

npm install -D husky --save

【2】在package.json中设置我们需要的git hooks在这里插入图片描述

{
  "husky": {
    "hooks": {
      "pre-commit": "npm run test && npm run format && npm run list", // 在commit之前先执行npm run test 等命令去校对
      "commit-msg": "commitlint -E $HUSKY_GIT_PARAMS" // 校验提交git commit时添加的备注信息是否符合我们要求的规范
    }
  }
}

【3】安装list-staged(可以参考下边第二个资料)

  "lint-staged": {
    "*.{json,md}": [
      "prettier --write",
      "git add"
    ],
    "*.{css,less,scss}": [
      "prettier --write",
      "stylelint --fix",
      "git add"
    ],
    "*.{ts,tsx}": [
      "prettier --write",
      "git add"
    ],
    "*.{jsx,js}": [
      "prettier --write",
      "eslint --fix",
      "git add"
    ]
  }

测试配置是否生效

先触发eslint的规则 在进行代码提交 看是否生效

上面代码提交失败说明配置成功生效,每次执行git commit命令,都会自动调用package.json中的precommit命令,在本项目中precommit命令就会执行eslint的代码校验,若校验失败,则无法将代码commit,避免不规范代码提交到远程仓库

最后一些规范提交可以配置package.json 查看

"scripts": {
    "dev": "rollup --config ./rollup.config.js -w",
    "start": "npm run dev & (cd page && game dev)",
    "build": "NODE_ENV=production rollup --config rollup.config.js",
    "postbuild": "esc js ./page/ && esc html ./page/ && ./scripts/pack.sh",
    "prepack": "npm run build",
    "test": "echo \"Error: no test specified\" && exit 1",
    "lint": "eslint --config .eslintrc.js --fix src --ext .ts,js",
    "commit": "git-cz"
  },
feat:新功能(feature)
fix:修补bug
hotfix:紧急修复bug
test:增加测试
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
chore:构建过程或辅助工具的变动

参考其他博主文档:
https://blog.csdn.net/qq_38128179/article/details/85621825
https://zhuanlan.zhihu.com/p/366786798
https://www.cnblogs.com/jiaoshou/p/12250278.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值