启动命令
- npm run serve 开启本地环境
- npm run build 构建打包
- npm run cm "提交的注释,但是要遵循 commitlint 规范", 例如 npm run cm "feat: 新功能开发",但是对于新建的分支,还是需要手动推送到远端
- npm run analysis 执行包分析
规范
无规矩不成方圆,就规范来说没有谁对谁错,需要大家约定好,后面就按照规定的方案就做,同时利用工具去规范。
编码规范
-
js 规范, 提供 eslint 插件 (@vue/airbnb) 检测 airbnb JavaScript 规范
-
css 规范,提供 vs code stylelint 插件,stylelint 配置 stylelint-config-standard 插件styleguide
-
Vue 编码规范 可以参考Vue 风格指南
命名规范
- Vue 规范可以 参考Vue 风格指南和 vue/attributes-order | eslint-plugin-vue (vuejs.org)
- js 可以参考 airbnb 的规范 airbnb JavaScript 规范。
- css 可以参考 CSS BEM 书写规范
文件命名
-
目录(文件夹)
- 目录(文件夹):全部采用小写方式, 以中划线分隔,有复数结构时,要采用复数命名法, 缩写不用复数 kebab-case
- 示例: scripts / styles / components / images / utils / layouts / demo-styles / demo-scripts / img / doc
【特殊】Vue components(公共组件,业务组件(业务模块 里面抽离出来的组件))都采用大驼峰 PascalCase Tips: 目录命名需要用名词,最好不好出现动词之类。 最多不超超过 3 级,反例: get-my-components-items,正例:my-items
- 文件
- 全部采用小写方式, 以中划线分隔 kebab-case
- 示例: render-dom.js / signup.css / index.html / company-logo.png
git 规范
使用 commitlint 可以规范化提交信息,同样的,可以设置工具来检查提交信息是否符合格式要求, 具体 commit 提交的格式,可以参考如下。
操作模板,type(scope): subject,注意 type 后面的空格
- build: 主要目的是修改项目构建系统(例如 gulp,webpack,rollup 的配置等)的提交
- ci: 主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle 等)的提交
- docs: 文档更新
- feat: 新增功能
- merge: 分支合并 Merge branch ? of ?
- fix: bug 修复
- perf: 性能, 体验优化
- refactor: 重构代码(既没有新增功能,也没有修复 bug)
- style: 不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
- test: 新增测试用例或是更新现有测试
- revert: 回滚某个更早之前的提交
- chore: 不属于以上类型的其他类型
example:
# 错误提交提交
$ git commit -m "忽略node_modules"
husky > commit-msg (node v10.15.3)
⧗ input: 忽略node_modules
✖ subject may not be empty [subject-empty]
✖ type may not be empty [type-empty]
✖ found 2 problems, 0 warnings
(Need help? -> https://github.com/conventional-changelog/commitlint#what-is-commitlint )
husky > commit-msg hook failed (add --no-verify to bypass)
# 正确提交
$ git commit -m "build(npm): 忽略node_modules"
husky > commit-msg (node v10.15.3)
⧗ input: build(npm): 忽略node_modules
✔ found 0 problems, 0 warnings
(Need help? -> https://github.com/conventional-changelog/commitlint#what-is-commitlint )
[master 8728336] build(npm): 忽略node_modules
1 file changed, 1 insertion(+)
create mode 100644 .gitignore
注释
需要在文件最上方添加文档注释,标注组件的功能用途、接收参数、示例等
/**
* 输入框格式化
*
* 1. 支持数字(包含 整数 plus,整数 int,浮点正数 floatpos,正常的浮点数)
* - v-base-input:{num: true, plus: true} 正数
* - v-base-input:{num: true, int: true} 整数
* - v-base-input:{num: true, floatpos: true} 浮点正数
* - v-base-input:{num: true} 正常的浮点数
* 2. 汉字
* - v-base-input:{chinese: true} 汉字
* 3. 英文
* - v-base-input:{english: true}
* 4. 汉字+英文
* - v-base-input:{english: true, chinese: true} 汉字 + 英文
* 5. 数字+英文
* - v-base-input:{english: true, num: true} 数字+英文
* 6. 汉字 + 英文 + 数字
* - v-base-input:{english: true, num: true,chinese: true} 汉字 + 英文 + 数字
* 7. 没有限制的输入
* - v-base-input
*
* 如果需要扩展的,可以按照上面的模式扩展
*
* example 1 如果是在业务代码里面使用
* <el-input v-base-input:{chinese: true, english: true} placeholder='abcdefg' />
*
* example 2 如果是在公共组件中,动态绑定的
*
* 这是配置文件,看里面的directive
* searchList: [
{
id: 0,
label: '用户编号',
model: 'userNo',
type: 'input',
placeholder: '请输入用户编号',
clear: true,
directive: { num: true, english: true }
}
]
* 这是组件内动态绑定的
* item 是指上面searchList 里面的对象
* <el-input v-base-input:[item.directive] />
*/