文档

项目结构

Sliprail 只要求有效的清单和清单引用的文件。源代码目录可以自由组织,但交给 Sliprail 加载的目录必须包含运行时产物。

最小运行时结构

my-extension/
├── manifest.json
├── main.mjs
├── icon.svg
└── README.md

TypeScript 项目在开发时通常会同时保留源代码和构建产物:

my-extension/
├── src/
│   └── main.ts
├── main.mjs
├── manifest.json
├── icon.svg
├── package.json
└── node_modules/

node_modules 只用于开发。Sliprail 不会为用户安装依赖,因此发布后的运行时代码不能依赖未打包的本地 node_modules 目录。

manifest.json 清单文件

扩展清单必须包含 iddisplayNamedescriptionmain

{
  "id": "your-registered-extension-id",
  "displayName": "My Extension",
  "description": "A short description of the extension",
  "main": "main.mjs",
  "icon": "icon.svg"
}
  • id 必须使用开发者门户中注册的标识符
  • displayNamedescription 可以使用字符串或多语言对象
  • main 相对于清单目录,并且必须指向存在的 JavaScript 模块
  • icon 是可选字段,可以引用本地文件、HTTP URL 或 data URI
  • 普通扩展可以省略 type。主题必须将 type 设置为 Theme

依赖管理

Sliprail 不会为扩展运行 npm install

  • 优先直接使用 Node.js 内置模块
  • 使用 import type 导入 @sliprail/sdk 声明
  • 将第三方运行时依赖打包到生成的 JavaScript 中
  • 仓库或分发包中必须包含 manifest.json 引用的全部文件