Skip to content

配置文件

Saukko CLI 支持读取 TOML 格式的配置文件。你可以通过配置文件,精准控制框架的行为,也可以管理服务与插件的配置。

不稳定的 API

Saukko CLI 的配置文件 API 尚处于开发阶段,可能会发生重大变化。

typescript
type Config = {
    project: {
        name: string;
    };
    plugin: {
        scopes?: string[];
        files?: string[];
        config: {
            [key in keyof PluginConfigRegistry]?: PluginConfigRegistry[key];
        };
    };
    service: {
        scopes?: string[];
        files?: string[];
        config: {
            [key in keyof ServiceConfigRegistry]?: ServiceConfigRegistry[key];
        };
    }
}

装载服务与插件

Daemon 启动时按配置装载服务与插件,有两种来源:

  • files:按文件路径加载,适合项目内的本地模块;
  • scopes:按包名前缀扫描 package.json 的依赖并加载,适合发布到 npm 的模块。框架内置扫描 @saukkojs/service- / saukko-service-@saukkojs/plugin- / saukko-plugin- 前缀,scopes 用于追加自定义前缀。
toml
[plugin]
files = ["./my-plugin.mjs"]
scopes = ["my-plugin-scope-"]
config = {}

[service]
files = ["./my-service.mjs"]
config = {}

插件与服务配置

plugin.config 下的同名属性会在插件启用时通过 context.config 传递给插件;service.config 下的属性由对应服务自行读取(例如内置 storage 服务读取 service.config.storage.path 作为存储目录)。

toml
[plugin.config.my-plugin]
greeting = "hello"

[service.config.storage]
path = "./data"

环境变量

环境变量属于配置之一,只不过其影响的是 CLI 的行为。

typescript
type SaukkoEnv = {
    SAUKKO_LOG_LEVEL?: 'trace' | 'debug' | 'info' | 'notice' | 'warn' | 'error' | 'silent';
    SAUKKO_CONFIG_PATH?: string;
    SAUKKO_SOCKET_PATH?: string;
}

Saukko.js 系列项目均使用 Apache 2.0 协议开源。