快速开始
创建项目
首先,你需要创建一个空白的项目。我们推荐使用的包管理器是 pnpm。
bash
pnpm init安装 CLI 依赖。
bash
pnpm add -D saukko随后,手动创建配置文件 saukko.toml。
toml
[project]
name = "project"
[plugin]
config = {}
[service]
config = {}接着,就可以启动框架了:
bash
pnpm saukko第一个插件
创建一个插件文件 my-plugin.mjs:
js
export const name = 'my-plugin';
export default function (context) {
context.lifecycle.onStop(() => {
// 插件卸载时执行,框架会等待清理完成
});
}在配置文件的 plugin.files 中登记它:
toml
[plugin]
files = ["./my-plugin.mjs"]
config = {}重新启动框架,插件即被装载并启用。插件的完整开发方式请参阅 插件开发 手册。
手动装配框架
当然,你也可以手动安装 Core,并自行编写脚本管理框架。
bash
pnpm i @saukkojs/core不稳定的 API
Saukko Core 的 API 尚处于开发阶段,可能会发生重大变化。
typescript
import { createScope, injectionProvider } from '@saukkojs/core';
// 0.2 起,作用域是唯一的资源管理入口(0.1 的 Container 已移除)。
const rootScope = createScope();
// 配置信息将会被框架所使用
const config = {};
// @saukkojs/core 提供的 injectionProvider 方法,用于一键注册核心服务。
injectionProvider(rootScope, config, {
headless: false, // 是否以无头模式运行,即是否装载 `plugin` 与 `app` 服务。
});
// 这里,你还可以注册你自己所需的服务。
rootScope.register('my-service', /* ... */);
const app = rootScope.get('app');
// 请在 app.start() 之前注册所需要的所有服务。
await app.start();
// 停止框架:等待全部插件按依赖逆序完成清理。
await app.stop();