Skip to content

快速开始

创建项目

首先,你需要创建一个空白的项目。我们推荐使用的包管理器是 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();

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