Uniboot前端规约

《Uniboot前端规约》 是一套前端编码和工程规范,致力于通过统一编码风格、普及最佳实践和代码缺陷检查帮助团队降低协作成本、提升前端项目的可维护性和稳定性。

本规约主要包括规约文档规约工具两部分。您可以通过阅读规约文档了解各前端语言、框架及工程规范,并使用 等配套工具来为项目接入规约检查。

规约文档帮助您理解规约细节并编写高质量的代码。规约文档包括:

规约工具帮助您将代码检查能力快速集成到项目中。规约工具包括:

包名用途文档
@uniboot/eslint-configESLint 9+ Flat Config,工厂 defineConfigESLint
@uniboot/stylelint-configStylelint 默认;Vue / HTML 与 SCSS 的 overrides 已内置Stylelint
@uniboot/oxlint-configOxlint 工厂 defineConfig,与 oxlint 自带 defineConfig 兼容Oxlint
@uniboot/oxfmt-configOxfmt 工厂 defineConfig,含团队基线Oxfmt
@uniboot/commitlint-configCommitlint + 与 monorepo 范围相关的增强(基于 conventional commits)Commitlint
@uniboot/markdownlint-configMarkdownlint 预设,提供可共享的 Markdown 规则配置Markdownlint
@uniboot/cspell-configCSpell 拼写检查预设,提供可共享的通用词典配置CSpell
@uniboot/tsconfigTypeScript JSON 预设:basewebweb-appvue-appnodelibraryTypeScript

安装方式

每个包按需安装即可,包名与上表 name 一致:

bash
pnpm add -D @uniboot/eslint-config eslint
pnpm add -D @uniboot/stylelint-config stylelint
pnpm add -D @uniboot/oxlint-config oxlint
pnpm add -D @uniboot/oxfmt-config oxfmt
pnpm add -D @uniboot/commitlint-config @commitlint/cli
pnpm add -D @uniboot/markdownlint-config markdownlint
pnpm add -D @uniboot/cspell-config cspell
pnpm add -D @uniboot/tsconfig

各工具的 本体eslintstylelintoxlintoxfmt@commitlint/climarkdownlintcspelltypescript)由项目自行安装;预设包的 peerDependencies 多标为 optional,按实际启用的能力安装。

单条规约格式说明

规约级别和对应的 Lint 规则

根据约束力强弱,一条规约依次分为强制、推荐、参考三个级别:

  • 强制: 必须遵守。是不得不遵守的约定,违反本约定或将会引起严重的后果。如有对应 Lint 规则,配套规则包中级别为 error
  • 推荐: 尽量遵守。长期遵守这样的规定,有助于系统稳定性和合作效率的提升。如有对应 Lint 规则,配套规则包中级别为 warn
  • 参考: 充分理解。技术意识的引导,是个人学习、团队沟通、项目合作的方向。如有对应 Lint 规则,配套规则包中默认为 off 或不支持。

一条规约的级别会在规约描述的开头标注,如有对应的 Lint 规则会在结尾标注,例如:

1.1.1 强制 使用 2 个空格缩进。eslint: indent

代码示例

为了更加直观,规约描述之后通常会配上代码示例,例如:

js
// bad
function foo() {
∙∙∙∙let name;
}

// good
function foo() {
∙∙let name;
}
  1. bad 表示不推荐的用法
  2. good 表示推荐的用法
  3. 空格有时候会被 替代以方便计数