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 清单文件扩展清单必须包含 id、displayName、description 和 main。
{
"id": "your-registered-extension-id",
"displayName": "My Extension",
"description": "A short description of the extension",
"main": "main.mjs",
"icon": "icon.svg"
}
id 必须使用开发者门户中注册的标识符displayName 和 description 可以使用字符串或多语言对象main 相对于清单目录,并且必须指向存在的 JavaScript 模块icon 是可选字段,可以引用本地文件、HTTP URL 或 data URItype。主题必须将 type 设置为 ThemeSliprail 不会为扩展运行 npm install。
import type 导入 @sliprail/sdk 声明manifest.json 引用的全部文件