源码运行与插件开发
源码运行与插件开发
普通使用不需要源码。开发时在新的工作目录克隆仓库,选择要维护的版本后安装依赖。
git clone https://github.com/holic512/SlothTool.git
cd SlothTool
npm ci
node bin/slothtool.js --help
node plugins/loc/bin/loc.js .
直接入口运行当前源码;slothtool loc 通常运行用户目录中的已安装插件。npm link 才会修改全局命令指向,按需使用。
根 workspaces 包含 loc、gstore、pzip、slothvault。图片后端独立位于 plugins/image-compress/backend,源码回退运行需要 Go;要求见 go.mod。
新插件契约
从 plugins/template-basic 复制到自己的开发目录,修改包名、命令名、帮助、中英文文案和依赖。package.json 的关键片段:
{
"type": "module",
"bin": {"mytool": "bin/mytool.js"},
"slothtool": {
"interactive": true,
"interactiveFlag": "-i",
"ui": {
"cli": true,
"tui": true,
"defaultMode": "tui",
"tuiFlag": "--tui",
"compatFlags": ["-i", "--interactive"]
}
}
}
这是契约片段,不是完整可发布包。保留 Node shebang 和入口可执行位。业务服务不依赖 Ink;CLI 处理参数和退出码,TUI 处理显示及导航,两者复用服务。
使用 node:test 及临时 HOME 验证,不触碰真实配置。共享模块按仓库的 sync/check 流程维护;发布前检查 npm pack 清单、生产依赖和目标资产。
自定义插件不会因满足契约就自动加入官方 install 目录。加入目录还需要维护者审查身份、存储归属和发布流程。仅文档修改无需提升软件版本。