Vue3项目工程化配置:Prettier + Eslint + husky + commitlint
最近使用vue ui创建了一个vue3+typescript项目,需要配置代码格式化和git提交信息规范。
使用vue UI创建的时候,使用eslint 选择项目总是错误。搞得一头雾水,没办法单独添加ESlint
Vue3的开发插件使用了尤大推荐的Volar,Volar插件中没有Eslint和Prettier相关配置,需要我们自己按自己项目的实际需要进行配置。
vscode 需要安装插件,需要安装的插件有:Prettier
和Eslint
- 在package.json中添加"prettier"字段(Prettier官方推荐的配置方式)
在工程的根目录创建文件.prettierignore
,写入以下内容:
配置eslint
- 在package.json中添加"eslint"字段
"eslint": {
"extends":
[ "plugin:vue/vue3-recommended", "prettier" ]
}
配置工程的settings.json
在工程根目录下创建.vscode
目录,在.vscode
中创建settings.json
文件,写入以下内容:
{
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"javascript.updateImportsOnFileMove.enabled": "always",
"editor.formatOnSave": true,
"window.zoomLevel": 1,
"files.eol": "\n"
}
主要是配置了各类型文件的默认格式化工具是prettier,以及保存时自动格式化文件。
配置Pre-commit Hook
在代码commit前,对处于staged状态下的文件进行一次格式化,避免提交的格式不符合要求。 在项目根目录执行:
npx mrm@2 lint-staged
等待命令执行完成后,会自动安装husky和lint-staged依赖,并创建.husky目录,同时在package.json中添加了相应的字段。 我们需要修改package.json中的lint-staged字段:
"lint-staged": {
"*.{js,css,md,ts,tsx,vue}": "prettier --write"
}
配置commitlint
git提交信息的随意编写对项目的长期维护来说是十分不利的,commitlint是一个用于检查git提交信息的工具,其约定了commit信息的格式:
安装Npm依赖
npm install -g @commitlint/cli @commitlint/config-conventional --save-dev
新增配置文件
在工程根目录下新建文件commitlint.config.js
,写入以下内容:
module.exports = {
extends: ['@commitlint/config-conventional'],
};
注意:这个文件的编码格式必须是UTF-8,否则在git提交时会报错
新增husky配置
在.husky目录下新增文件commit-msg
,写入以下内容:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --edit $1
至此,commitlint就配置好了,在下一次git commit时需要按照commitlint约定的格式.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现