esa-cli
Version:
A CLI for operating Alibaba Cloud ESA Functions and Pages.
75 lines (60 loc) • 4.17 kB
Markdown
# ESA 配置文件说明
本文档介绍 ESA(Edge Security Acceleration)项目的配置文件 `esa.jsonc` 的结构、参数说明及示例,旨在帮助开发者快速配置和管理 ESA 项目。
## 项目配置文件(esa.jsonc)
`esa.jsonc` 是 ESA 项目的核心配置文件,用于定义项目的名称、描述、入口文件、静态资源托管方式以及本地开发工具的配置。以下是配置文件中各字段的详细说明。
### 参数说明
| **参数** | **说明** |
| ------------------ | ---------------------------------------------------------------------------------------------------- |
| **name** | 目标项目名称。若项目已存在,则部署到该项目;若不存在,则以此名称创建新项目。 |
| **description** | 项目描述,可选字段,用于简要说明项目功能或用途。 |
| **buildCommand** | 项目构建命令,例如 `npm run build`。仅在通过ESA控制台 GitHub 仓库导入时生效,使用 CLI 时不生效。 |
| **installCommand** | 安装依赖命令,例如 `npm install`。仅在通过ESA控制台 GitHub 仓库导入时生效,使用 CLI 时不生效。 |
| **entry** | 动态函数入口文件路径,例如 `./src/index.ts`。可选字段,用于指定动态函数的入口。 |
| **assets** | 静态资源托管配置(每个 Pages 项目仅支持一组静态资源)。包含 `directory` 和 `notFoundStrategy` 字段。 |
| **dev** | 本地开发工具配置,可选字段,用于设置开发服务器端口和代理地址。 |
#### 字段结构
- **name**: `string`
- 项目名称,必填字段,用于标识项目。
- **description**: `string`
- 项目描述,可选字段,用于记录项目的功能或用途。
- **buildCommand**: `string`
- 项目构建命令,例如 `npm run build`。仅在通过 GitHub 仓库导入时生效,使用 CLI 时不生效。
- **installCommand**: `string`
- 安装依赖命令,例如 `npm install`。仅在通过 GitHub 仓库导入时生效,使用 CLI 时不生效。
- **entry**: `string`
- 动态函数入口文件路径,例如 `./src/index.ts`。可选字段,仅在需要动态函数时配置。
- **assets?**: `object`
- 静态资源托管配置,可选字段,包含以下子字段:
- **directory**: `string`
- 构建输出目录,例如 `./public`、 `./dist` 或 `./build`。指定静态资源托管的目录。
- **notFoundStrategy**: `string`
- 当请求路径未匹配到静态资源时的处理策略,可选值:
- `singlePageApplication`: 返回静态目录中的 `index.html`,状态码为 `200 OK`(适用于单页应用)。
- `404Page`: 返回静态目录中的 `404.html`,状态码为 `404 Not Found`。
- **dev**: `object`
- 本地开发工具配置,可选字段,包含以下子字段:
- **port?**: `number`
- 开发服务器端口,默认值为 `18080`。
- **localUpstream?**: `string`
- 本地上游代理地址,用于本地开发时的代理设置。
### JSONC 示例
以下是一个典型的 `esa.jsonc` 配置文件示例,展示了如何配置一个基于 Vite 和 React 的单页应用项目:
```jsonc
{
"name": "vite-react-template",
"assets": {
"directory": "./dist",
"notFoundStrategy": "singlePageApplication"
},
"dev": {
"port": 18080
}
}
```
#### 示例说明
- **name**: 指定项目名称为 `vite-react-template`。
- **assets.directory**: 静态资源托管目录为 `./dist`,通常是 Vite 构建后的输出目录。
- **assets.notFoundStrategy**: 配置为 `singlePageApplication`,表示未找到资源时返回 `index.html`,适用于单页应用。
- **dev.port**: 本地开发服务器运行在端口 `18080`。
### 相关文档
- [Pages 构建和路由指南](https://help.aliyun.com/zh/edge-security-acceleration/esa/build-pages)