# 多人协作规范
# eslint
- npm install --save-dev eslint eslint-plugin-vue eslint-plugin-vue vue-eslint-parser
// .eslintrc.js配置
module.exports = {
extends: [
'plugin:vue/recommended', // 官方推荐
'eslint:recommended' // 最严格的校验
]
}
- vscode 配置 ESlint 扩展
- .eslintignore, 配置忽略文件
- 不想用的话, vue.config.js 配置
lintOnSave: false
# git hooks
- 使用 husky -> pre-commit
- 本地提交前就进行 lint 校验
- 使用 lint-staged, 只会校验你更改的部分
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,json,css,vue}": [
"eslint --fix",
"git add"
]
}
# commit 规范
- commit message格式
<type>(<scope>): <subject>
# type(必须)
feat:新功能(feature)
fix:修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。
docs:文档(documentation)
style:格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
perf:优化相关,比如提升性能、体验
test:增加测试
chore:构建过程或辅助工具的变动
revert:回滚到上一个版本
merge:代码合并
sync:同步主线或分支的Bug
# scope(可选)
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
// commitLint.config.js
module.exports = {
ignores: [commit => commit.includes("init")],
extends: ["@commitlint/config-conventional"],
rules: {
"body-leading-blank": [2, "always"],
"footer-leading-blank": [1, "always"],
"header-max-length": [2, "always", 108],
"subject-empty": [2, "never"],
"type-empty": [2, "never"],
"type-enum": [
2,
"always",
[
"feat",
"fix",
"perf",
"style",
"docs",
"test",
"refactor",
"build",
"ci",
"chore",
"revert",
"wip",
"workflow",
"types",
"release"
]
]
}
};
# 编辑器配置统一
# vscode
- 统一 setting.json 配置
- 统一 .vscode 里的配置文件, 并且推向远程(setting.json, extensions.json)
# webstorm
- webStorm用户,打开设置,配置应用
- 目录:Settings/Preferences(mac) > Languages & Frameworks > JavaScript > Code Quality Tools > Eslint
- 选择 Manual ESLint configuration
- ESLint package: 选择【工程目录】/node_modules/eslint
- Configuration File: 选择Configuration File > 选择【工程目录】.eslintrc.js