package.json

  1. "scripts": {
  2. "dev": "vite",
  3. "build": "npm run lint && vite build",
  4. "serve": "vite preview",
  5. "prettier": "prettier --write .",
  6. "lint": "eslint ./src --ext .jsx,.js,.ts,.tsx --quiet --fix --ignore-path ./.gitignore",
  7. "lint:format": "prettier --loglevel warn --write \"./**/*.{js,jsx,ts,tsx,css,md,json}\" ",
  8. "lint:fix": "yarn lint:format && yarn lint:fix ",
  9. },
  • npm run prettier 会自动格式化
    • 执行npm run format,就可以按照.prettierrc.js中的规则对代码进行格式化
  • lint-staged:对暂存的git文件运行linter
    • commit代码之前运行 Linting,可以确保没有错误格式的代码提交到仓库
    • lint 只校验将要提交的文件
  • prettier:按照规则解析代码来强制执行一致的样式,用来优化代码格式,比如缩进、空格、分号等
  • gitHooks: 在.git/hooks文件下,保存了一些 shell 脚本
    • Git Hooks就是那些在Git执行特定事件(如commit、push、receive等)后触发运行的脚本
  • eslint —系列参数概念

image.png

eslint

eslint是用来做代码规范,代码的书写习惯
为保证你开发的效率,不需要每次编译都做 eslint的校验,只需要在提交代码时进行校验

  1. yarn add eslint-config-standard -D
  2. yarn add eslint-plugin-import -D
  3. yarn add eslint-plugin-promise -D
  4. yarn add eslint-plugin-node -D
  5. yarn add eslint-plugin-standard -D

eslint-config-standard https://github.com/standard/eslint-config-standard

prettier

prettier做代码格式化

  1. yarn add eslint-plugin-prettier -D
  2. yarn add eslint-config-prettier -D
  3. yarn add prettier -D

git hooks

Git Hook 保存在 .git 文件夹中
Husky 配置 Git 钩子变得更简单的工具

  1. yarn add husky -D
  2. yarn add lint-staged @commitlint/cli @commitlint/config-conventional -D
  3. # 根目录生成 .husky 文件
  4. npx husky install
  • husky:一个方便用来处理 pre-commit 、 pre-push 等 githooks 的工具
  • lint-staged:对 git 暂存区的代码,运行 linters 的工具

Husky 共支持以下几种格式的配置文件

  • .huskyrc
  • .huskyrc.json
  • .huskyrc.yaml
  • .huskyrc.yml
  • .huskyrc.js
  • husky.config.js

Husky 不支持服务端 Git 的钩子:

  • pre-receive
  • update
  • post-receive

跳过所有的钩子
HUSKY_SKIP_HOOKS=1 git rebase

跟目录生成 husky

image.png
image.png

  1. npx husky add .husky/pre-commit "npm run lint"

提交代码前,先执行 npm run lint
image.png

git 日志提交规范限制

终端输入 git commmit -m ‘xxx’ 提交代码时,用来检查 代码规范是否满足预设的格式

  • lint 会自动检查本次提交所修改的文件是否符合本项目的代码规范,不符合规范的会提交失败
  • 通过 git commit提交记录一目了然,本次提交了做了哪些操作,便于后续维护和统一规范

    1. "lint-staged": {
    2. "src/**/*.{js,jsx,vue}": [
    3. "prettier --write",
    4. "eslint --cache --fix",
    5. "git add"
    6. ],
    7. "src/**/*.css": [
    8. "stylelint --fix",
    9. "git add"
    10. ]
    11. }
  • cache 只检查已更改的文件

  • fix 可以自动修复错误
  • git add 是把lint后的代码重新提交到缓存区
  • 使用命令 git commit -m”fix: 修复xxxx”
  • husky参考 https://blog.csdn.net/jiandan1127/article/details/108388328

.editorconfig

EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格

  1. # http://editorconfig.org
  2. root = true
  3. [*] # 表示所有文件适用
  4. charset = utf-8 # 设置文件字符集为 utf-8
  5. indent_style = space # 缩进风格(tab | space)
  6. indent_size = 2 # 缩进大小
  7. end_of_line = lf # 控制换行类型(lf | cr | crlf)
  8. trim_trailing_whitespace = true # 去除行首的任意空白字符
  9. insert_final_newline = true # 始终在文件末尾插入一个新行
  10. [*.md] # 表示仅 md 文件适用以下规则
  11. max_line_length = off
  12. trim_trailing_whitespace = false