跳到主要内容

发布你的插件

把插件打包成可安装的 bundle,并让它被本目录收录。

一个 bundle 就是一个附带配置层的 npm 包。三个文件:

my-plugin/
├── package.json       # 声明 dsh.bundle
├── cordis.patch.yml   # 当某个 profile 列出此 bundle 时所应用的 layer
└── index.js           # patch 行所引用的插件模块

package.json

{
  "name": "dsh-my-plugin",
  "version": "0.1.0",
  "type": "module",
  "main": "index.js",
  "files": ["index.js", "cordis.patch.yml"],
  "keywords": ["dsh", "dsh-plugin"],
  "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
}

cordis.patch.yml

- insert:
    - id: my-plugin
      name: dsh-my-plugin

index.js

export const name = 'my-plugin'

export function apply(ctx) {
  // 注册你的插件所做的事情;卸载时会自动清理
}

被收录

发布到 npm 时带上 dsh-plugin 关键字。本目录每日读取 npm registry,因此新版本 会在发布后一天内出现 —— 没有提交表单,也不需要等人工审核。

如果迟迟没有出现,原因几乎总是出在清单上。与其猜测,不如把包名粘贴到 发布检查页:它对你已发布到 npm 的包运行与索引程序完全 相同的规则,并指出缺少什么。

TODO:待补充 —— 版本管理、废弃行为、如何认领一个条目。

最后更新于 2026-08-22