配置选项
NServe 的配置文件 nserve.config.ts 是使用 TypeScript 编写的,提供了丰富的配置选项来定制开发、构建和代码生成过程。
完整配置示例
typescript
import { DefineNserveConfig } from '@aicblock/nserve'
export default DefineNserveConfig({
entry: 'app.ts',
outputDir: 'dist',
sourceDir: 'src',
testing: false,
yamlConfig: {},
plugins: [],
external: [],
generateConfig: {
genDir: 'nserve-config',
routerDir: 'router',
modelDir: 'model',
codePrettier: {
semi: false,
singleQuote: true,
trailingComma: 'none'
},
middleware: {}
}
})基本配置
entry
- 类型:
string - 默认值:
'app.ts' - 说明: 应用程序的入口文件路径。
outputDir
- 类型:
string - 默认值:
'dist' - 说明: 构建输出目录。
sourceDir
- 类型:
string - 默认值:
'src' - 说明: 源代码目录。
testing
- 类型:
boolean - 默认值:
false - 说明: 是否为测试模式。在测试模式下,NServe 可能会跳过某些优化或执行额外的测试相关逻辑。
yamlConfig
- 类型:
Record<string, any> - 默认值:
{} - 说明: YAML 配置文件内容。用于支持从 YAML 文件加载配置。
plugins
- 类型:
esbuild.Plugin[] - 默认值:
[] - 说明: 自定义 esbuild 插件数组。可以用于扩展 NServe 的构建功能。
external
- 类型:
string[] - 默认值:
[] - 说明: 构建时应排除的外部依赖数组。这些依赖不会被打包到输出文件中。
生成配置
generateConfig.genDir
- 类型:
string - 默认值:
'nserve-config' - 说明: 生成配置目录,用于存放路由配置和模型 SQL 文件。
generateConfig.routerDir
- 类型:
string - 默认值:
'router' - 说明: 路由配置目录,位于 genDir 内部。
generateConfig.modelDir
- 类型:
string - 默认值:
'model' - 说明: 模型 SQL 文件目录,位于 genDir 内部。
generateConfig.codePrettier
- 类型:
Record<string, any> - 默认值:
{ semi: false, singleQuote: true, trailingComma: 'none' } - 说明: 代码格式化配置,使用 Prettier 的配置选项。
generateConfig.middleware
- 类型:
Record<string, { libName: string; funcName: string }> - 默认值:
{} - 说明: 全局中间件配置,用于定义可在路由配置中使用的中间件。
配置文件加载顺序
NServe 会按照以下顺序加载配置文件:
- 当前目录下的
nserve.config.ts - 通过
--config选项指定的配置文件
环境变量覆盖
NServe 支持通过环境变量覆盖配置文件中的选项。环境变量的命名规则是:将配置键转换为大写,使用下划线分隔层级,并添加 AICBLOCK_NSERVE_ 前缀。
例如:
entry→AICBLOCK_NSERVE_ENTRYoutputDir→AICBLOCK_NSERVE_OUTPUT_DIRgenerateConfig.genDir→AICBLOCK_NSERVE_GENERATECONFIG_GENDIR
TypeScript 类型支持
NServe 提供了完整的 TypeScript 类型定义,可以通过以下方式导入:
typescript
import type { Config, DefineGenRouterConfig } from '@aicblock/nserve'