配置prettier+husky+commitlint实现代码和git规范化

从零搭建后台管理系统---项目配置 eslint 和 prettier

1,安装 eslint

bash 复制代码
npm i eslint -D

2,生成配置文件:eslint.js

bash 复制代码
npx eslint --init

3, vue3 环境代码校验插件

perl 复制代码
# 让所有与prettier规则存在冲突的Eslint rules失效,并使用prettier进行代码检查
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-node": "^11.1.0",
# 运行更漂亮的Eslint,使prettier规则优先级更高,Eslint优先级低
"eslint-plugin-prettier": "^4.2.1",
# vue.js的Eslint插件(查找vue语法错误,发现错误指令,查找违规风格指南
"eslint-plugin-vue": "^9.9.0",
# 该解析器允许使用Eslint校验所有babel code
"@babel/eslint-parser": "^7.19.1"

安装指令

arduino 复制代码
npm install -D eslint-plugin-import eslint-plugin-vue eslint-plugin-node eslint-plugin-prettier eslint-config-prettier eslint-plugin-node @babel/eslint-parser

4,修改.eslintrc.js 配置文件 最后再去修改

5,在项目根目录下新建.eslintignore 忽略文件

javascript 复制代码
dist;
node_modules;

6,运行脚本

package.json 新增两个运行脚本

bash 复制代码
"scripts": {
"lint": "eslint src",
"fix": "eslint src --fix",
}

二,配置 prettier

2.1 安装依赖包

arduino 复制代码
npm install -D eslint-plugin-prettier prettier eslint-config-prettier

2.2.prettierrc.json 添加规则

json 复制代码
{
"singleQuote": true,
"semi": false,
"bracketSpacing": true,
"htmlWhitespaceSensitivity": "ignore",
"endOfLine": "auto",
"trailingComma": "all",
"tabWidth": 2
}

2.3.prettierignore 忽略文件

cobol 复制代码
/dist/*
/html/*
.local
/node_modules/**
**/*.svg
**/*.sh
/public/*

从零搭建后台管理系统---配置 husky

1 安装husky

undefined 复制代码
npm install -D husky

执行

csharp 复制代码
npx husky-init    在package.json当中会有一个命令prepare  
必须先有git,然后需要npm run prepare 
在目录下会有一个.husky文件夹出现

2.在创建的.husky 文件夹添加 pre-commit 文件添加如下代码

bash 复制代码
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run lint

给 pre-commit 文件添加执行权限(最后再去做,一般都是可以执行的)

bash 复制代码
chmod +x .husky/pre-commit

chmod 命令是 Linux/Unix 系统下的命令,Windows 系统下没有这个命令,所以在 Windows 的 cmd 终端里执行 chmod +x .husky/pre-commit 是无法给 pre-commit 文件添加执行权限的。

如果你是在 Windows 系统下进行开发,需要安装 Git Bash 或者 WSL(Windows Subsystem for Linux)等工具来模拟 Linux/Unix 环境,然后再在 Git Bash 或者 WSL 终端里执行 chmod +x .husky/pre-commit 命令来给 pre-commit 文件添加执行权限。

不过,如果你使用的是 VS Code 编辑器,也可以在编辑器中打开 pre-commit 文件,然后在编辑器的终端面板里执行 chmod +x .husky/pre-commit 命令来给 pre-commit 文件添加执行权限。

从零搭建后台管理系统---配置 commitlint

安装包

sql 复制代码
npm i @commitlint/config-conventional @commitlint/cli -D

添加配置文件,新建commitlint.config.cjs(注意是 cjs),然后添加下面的代码:

javascript 复制代码
module.exports = {
  extends: ["@commitlint/config-conventional"],
  // 校验规则
  rules: {
    "type-enum": [
      2,
      "always",
      [
        "feat",
        "fix",
        "docs",
        "style",
        "refactor",
        "perf",
        "test",
        "chore",
        "revert",
        "build",
      ],
    ],
    "type-case": [0],
    "type-empty": [0],
    "scope-empty": [0],
    "scope-case": [0],
    "subject-full-stop": [0, "never"],
    "subject-case": [0, "never"],
    "header-max-length": [0, "always", 72],
  },
};

package.json中配置 scripts 命令

javascript 复制代码
# 在scrips中添加下面的代码
{"scripts": {
    "commitlint": "commitlint --config commitlint.config.cjs -e -V"
}
 ,}

配置结束,现在当我们填写commit信息的时候,前面就需要带着下面的subject

javascript 复制代码
'feat',//新特性、新功能
'fix',//修改bug
'docs',//文档修改
'style',//代码格式修改, 注意不是 css 修改
'refactor',//代码重构
'perf',//优化相关,比如提升性能、体验
'test',//测试用例修改
'chore',//其他修改, 比如改变构建流程、或者增加依赖库、工具等
'revert',//回滚到上一个版本
'build',//编译相关的修改,例如发布版本、对项目构建或者依赖的改动

配置 husky

javascript 复制代码
npx husky add .husky/commit-msg

在生成的 commit-msg 文件中添加下面的命令

javascript 复制代码
    #!/usr/bin/env sh
    . "$(dirname -- "$0")/_/husky.sh"
    npm run commitlint

我们 commit 提交信息时,就不能再随意写了,必须是 git commit -m'fix: xxx' 符合类型的才可以,需要注意的是类型的后面需要用英文的 :,并且冒号后面是需要空一格的,这个是不能省略的

配置完成后可能eslint会对当前写的代码报很多警告和错误,那么我 们需要专门针对规则去做更改

根据警告的信息在eslintrc.cjs当中配置rules

相关推荐
黑客老陈4 分钟前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
正小安10 分钟前
Vite系列课程 | 11. Vite 配置文件中 CSS 配置(Modules 模块化篇)
前端·vite
暴富的Tdy37 分钟前
【CryptoJS库AES加密】
前端·javascript·vue.js
neeef_se38 分钟前
Vue中使用a标签下载静态资源文件(比如excel、pdf等),纯前端操作
前端·vue.js·excel
m0_7482356144 分钟前
web 渗透学习指南——初学者防入狱篇
前端
z千鑫1 小时前
【前端】入门指南:Vue中使用Node.js进行数据库CRUD操作的详细步骤
前端·vue.js·node.js
m0_748250742 小时前
Web入门常用标签、属性、属性值
前端
m0_748230442 小时前
SSE(Server-Sent Events)返回n ,前端接收数据时被错误的截断【如何避免SSE消息中的换行符或回车符被解释为事件消息的结束】
前端
生产队队长3 小时前
项目练习:element-ui的valid表单验证功能用法
前端·vue.js·ui