开发指南
版本要求
Node.js 16+, npm 8+
1. fork 仓库
打开 alova 仓库 fork 页,点击“Create fork”fork 仓库,并将已 fork 的仓库克隆到本地。
2. 克隆项目到本地
使用git clone
命令,或Github Desktop
应用克隆项目。
3. 新建 pull request
你可以在编写完代码后通过 fork 仓库创建 pull request,也可以分为任意多次提交代码,而无需一次提交完整代码。
4. 在本地编码
安装依赖
使用npm install
安装依赖 。
安装推荐插件(vscode)
如果你使用 vscode,将会推荐你安装以下插件:
- eslint:检查代码质量
- prettier:格式化代码
- jest:自动执行单元测试用例,以及执行单个合集或单元测试用例
- EditorConfig:保证文件格式一致
项目结构
|-.github
| |-ISSUE_TEMPLATE -> github issues模板
| |-workflows -> github action
|-.husky -> husky配置
|-.vscode -> vscode配置
|-config -> rollup打包文件
|-src -> 源代码
|-test -> 单元测试
| |-browser -> 浏览器环境单元测试
| |-server -> SSR单元测试
| |-components -> 单元测试组件
| |-mockServer.ts -> mock接口(msw)
|-typings -> ts类型声明
|-其他配置文件
编码规范
代码格式
如果你安装了prettier
插件,在每次保存文件时会自动进行格式化代码,因此你可以不必在意格式的问题。
尽量减少代码
alova 的特性之一是轻量化,因此在编码时需要尽量减少编码量,这里有几个需要遵循的编码规范:
- 避免出现相同的代码块,这可以减少库的代码量,但两行代码可能就不值得封装;
- 使用一个变量声明符聚合变量的声明,例如:
// ❌
const a = 1;
const b = 2;
// ✅
const a = 1,
b = 2;
- 使用常量保存固定值、原型方法,在编译
uglify
阶段减少代码量。在src/utils/variables.ts
中定义了常用的固定值和原型方法。
// ❌
if (a === false) {
// ...
}
arr.forEach(item => {
// ...
});
// ✅
import { falseValue, forEach } from '@/utils/variables';
if (a === falseValue) {
// ...
}
forEach(arr, item => {
// ...
});