配置文件
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;
}