dsh-office
文件与数据 活跃维护

dsh-office

jiazekang/dsh-office

插件支持多种常见办公文件的直接读写,可将本地办公文件拖拽到对话框快速导入,无需手动选路径,交互轻便流畅,适配多数主流办公文档格式。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
46 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:jiazekang/dsh-office
git clone https://github.com/jiazekang/dsh-office.git
git clone git@github.com:jiazekang/dsh-office.git
README.md main

dsh-office

DSH Office 文档插件:Excel 读取 + 精准修改 + 办公文件拖入附件栏。

结构

packages/
  dsh-office/   # Office 文档工具插件:Excel 读取/精准修改(exceljs)+ 拖入附件栏

常用命令(在仓库根目录执行)

pnpm install                       # 安装所有包依赖
pnpm --filter dsh-office build     # 构建单个插件(tsc 类型检查 + tsdown 打包到 lib/)
pnpm --filter dsh-office smoke     # dsh-office 冒烟测试(真实文件读写验证)
pnpm --filter dsh-office watch     # 开发热构建
pnpm -r typecheck                  # 全部包类型检查

安装 / 联调(web profile)

# 把本地开发版挂到 web profile(link: 协议,改完重新 build 即生效)
dsh plugin --profile web add link:D:\Porject\DSH\dsh-office\packages\dsh-office

# dsh-office 的 exceljs 是外部依赖,link: 开发模式下需单独装进 profile
dsh plugin --profile web add exceljs

# 不启动服务查看合并后的配置树,确认插件行已进入
dsh --profile web --dump-config

# 重启 dsh web 后生效

发布到 npm

cd packages/dsh-office
npm publish
# 用户安装:dsh plugin --profile web add dsh-office
# (npm 安装会自动带上 exceljs 依赖,无需手动装)

插件写法速记

  • 插件 = 导出 name / inject / Config / apply 的 npm 包。
  • 工具用 defineTool({ name, description, parameters, output, execute }) 定义,
    参数与输出都必须是 JSON Schema,output.render 返回 ContentBlock[]。
  • 所有注册都包在 ctx.effect(fn, label) 里,卸载时自动清理。
  • @deepseek-ai/* 运行时服务声明为 peerDependencies,构建时保持外部(deps.neverBundle),
    运行时由宿主进程解析,避免重复实例。
  • 包内 cordis.patch.yml 用 insert 把插件行加进 roster;声明 dsh.bundle.patch
    后 dsh plugin add 会自动把它加入 profile 的 bundles 层。

更完整的参考:@linxin666/dsh-ssh(服务端全流程)与 @linxin666/dsh-client-ui-task-board(客户端全流程),
源码见 https://github.com/zhu1090093659/dsh-web-ui。