一些前端常见规范
最近花了丢丢时间稍微整理了下前端项目的规范,包括编码格式、提交规范等等,做了个小记录。
代码要求
- 使用 VSCode 编辑器请安装 vscode 插件 Prettier 和 ESLint。
- 请安装 Code Spell Checker 插件,避免错别字;error lens 插件将错误显示在当前行。
- commit 提交请遵守 commit 提交规则,提交类别具体请查看下方 Commitlint 模块
开发要求:
- 代码中不需要 console.log() 输出
- 节点尽量不使用内联样式,通过 class 设置样式,less 文件存在同级组件目录中
- Js 尽量不进行 dom 操作,渲染和数据尽量分离
- 不允许存在未引用的变量或函数
- any 类型尽量不用
- 涉及定量和类型定义可以考虑在同级目录中新建 const.ts 或 types.ts 文件管理
- 业务组件请存在业务文件下,全局公共组件才允许放入 src/components 文件
- 组件传入参数类型定义命名以组件名+Props 为准,如:MyComponentProps
- 合理使用空格行和注释,增加代码可读性
文件名命名规范
- 项目:全部小写字母命名,中划线分割,如 my-project
- 目录:全部小驼峰命名,如 firstDir
- 组件或组件文件:全部大驼峰命名,如 FirstComponent
- 其他文件:全部小写,下划线连接,如 helper.js
- class/id:全部小写,中划线连接
- 常量:全部大写
- 变量函数:小驼峰命名,且字母打头,如 myFunction
类型 | 常见分类 |
---|---|
UpperCamelCase | class / interface / type / enum / decorator / type parameters |
lowerCamelCase | variable / parameter / function / method / property / module alias |
CONSTANT_CASE | global constant values, including enum values. |
Prettier
引入代码格式化工具 Prettier。它一般不会检查我们的代码质量,但是会对代码的结构风格进行统一管理,通常在执行保存操作的时候生效。能够清除原先代码的结构风格,并替换为项目团队统一制定的代码风格。
优点:
- 统一项目代码风格
- 减少开发者在代码整理上花费精力
- 清理并规范已有代码
- 减少潜在 bug 可能性
使用:
安装包:npm install prettier -D
;安装 vscode 的 Prettier 插件
在项目根目录下的.Prettierrc 文件中添加 Prettier 应用规则,在.prettierignore 文件中添加 prettier 规则需要忽视的文件。
Prettier 规则具体:
1 | { |
更多可选配置点击查看
给项目添加 vscode 工作区配置,当然此设置也可以设置为你的 vscode 全局配置。
1 | { |
ESLint
ESLint 是一款优秀的代码检测工具,通过配置对应的规则能够实现对代码的格式以及代码质量进行检测,提高项目的质量。
代码检测都是通过 ESLint 包执行的,如果没有安装插件,则错误的信息需要在调用 eslint 检查命令后通过终端来查看;安装了插件,我们可以直接在 vscode 编辑器的代码对应部分看见红色波浪错误提示。
.eslintrc.js 文件
1 | module.exports = { |
强烈推荐安装 ESLint 插件!
具体请前往根目录中的.eslintrc.js 文件进行配置。更多配置
Stylelint
利用 Stylelint 帮助规避 CSS 代码中的错误并保持一致的编码风格。
.stylelintrc.js 文件
1 | module.exports = { |
husky & lint-staged
husky 本质上是 Git 的钩子,支持 Git 操作进行到某一阶段时,执行开发者希望的操作。比如在提交 commit 前进行代码质量检测。Lint-staged 支持只对更改的文件进行操作,避免了对整个项目进行操作的巨大耗时。
- 安装 husky
npm install husky --save-dev
- 启用 husky
npx husky install
或者通过在 package.json 中添加 prepare script 实现自动启动npm set-script prepare "husky install"
- 添加 precommit hook
1 | npx husky add .husky/pre-commit "npm run lint-staged" |
- 设置 lint-staged 运行
方式一:配置 json 文件
1 | "lint-staged": { |
方式二:配置.lintstagedrc 文件(优先)
1 | { |
Commitlint
通过利用 Husky 的 Git 钩子能力,我们可以在代码的提交阶段对提交 commit 信息进行格式规定。
提交类别:
- build:项目构建相关变更
- ci:集成流程变更
- docs: 文档更新
- feat:新增功能
- fix:bug 修复
- perf:性能优化
- refactor:代码重构,没新增功能也不是 bug 修复
- style:代码风格调整
- test:测试相关
- revert:回滚
- chore:不属于以上类型的其他类型提交
安装:npm install --save-dev @commitlint/config-conventional @commitlint/cli
添加 commitlint:npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'
.commitlintrc.js 文件
1 | module.exports = { |
项目引用 commitlint 推荐的配置@commitlint/config-conventional。如需添加其他配置请遵守配置规范,如'type':[Level, Applicable, Value]
- Level: 0-不启用规则、1-视为 warnning、2-视为 error。
- Applicable:always 或者 never
- Value:此规则适用的 value
更多配置可参考官网