一键导入
plugin-publish
// 发布 Zhin.js 插件到 npm 和 Zhin 插件市场。Use when asked to publish a plugin, prepare for release, check publish readiness, or submit to the Zhin plugin marketplace. 引导完成发布前检查、版本管理和提交流程。
// 发布 Zhin.js 插件到 npm 和 Zhin 插件市场。Use when asked to publish a plugin, prepare for release, check publish readiness, or submit to the Zhin plugin marketplace. 引导完成发布前检查、版本管理和提交流程。
初始化 Zhin.js 插件项目。Use when asked to create a new plugin, scaffold plugin structure, or set up a plugin project. 引导生成符合 Zhin 规范的目录结构、package.json、tsconfig、入口文件和 README。
审查和改进 Zhin.js 插件质量。Use when asked to review plugin code, check code quality, audit plugin structure, refactor plugin, or improve plugin before publishing. 引导检查插件的结构规范性、代码健壮性、性能和安全性。
为 Zhin.js 插件编写和运行测试。Use when asked to write tests, add test coverage, generate test cases, or verify plugin behavior. 引导编写符合 Zhin 插件测试规范的 Vitest 测试用例。
| name | plugin-publish |
| description | 发布 Zhin.js 插件到 npm 和 Zhin 插件市场。Use when asked to publish a plugin, prepare for release, check publish readiness, or submit to the Zhin plugin marketplace. 引导完成发布前检查、版本管理和提交流程。 |
| keywords | ["发布","publish","npm","插件市场","marketplace","release","版本","version","changeset"] |
| tags | ["development","plugin","publish","release"] |
引导将 Zhin.js 插件发布到 npm 和 Zhin 插件市场,确保包结构、元数据和质量符合社区标准。
验证 package.json 必需字段:
{
"name": "zhin.js-{name}", // ✅ 社区前缀
"version": "0.1.0", // ✅ 语义化版本
"type": "module", // ✅ ESM
"description": "插件简介", // ✅ 非空描述
"main": "./lib/index.js", // ✅ 入口指向编译产物
"types": "./lib/index.d.ts", // ✅ 类型声明
"exports": {
".": {
"types": "./lib/index.d.ts",
"development": "./src/index.ts", // ✅ 开发条件导出
"import": "./lib/index.js"
},
"./package.json": "./package.json"
},
"files": [ // ✅ 发布文件白名单
"src", "lib", "client", "dist",
"skills", "tools",
"README.md", "CHANGELOG.md"
],
"keywords": ["zhin.js", "plugin"], // ✅ 包含 zhin.js 关键词
"peerDependencies": {
"zhin.js": ">=x.x.x" // ✅ 声明框架兼容版本
},
"license": "MIT", // ✅ 开源协议
"repository": { "url": "..." }, // 推荐:仓库地址
"homepage": "...", // 推荐:文档地址
"author": "..." // 推荐:作者信息
}
插件市场识别条件:
name 以 zhin.js- 开头(社区)或 @zhin.js/ 开头(官方)keywords 包含 zhin.jspeerDependencies 包含 zhin.js# 1. 类型检查
pnpm build # 确保 tsc 编译通过,无类型错误
# 2. 运行测试
pnpm test # 确保所有测试通过
# 3. 覆盖率检查
pnpm test:coverage # 确保覆盖率达标
质量底线:
tsc 编译零错误any 类型滥用README.md 必须包含:
pnpm add zhin.js-{name})CHANGELOG.md 必须包含:
关键词: 有 skills/ 目录时,确认 SKILL.md 的 description 准确描述插件能力。
# 确保 lib/ 目录存在且完整
ls lib/
# 检查将要发布的文件
npm pack --dry-run
确认 npm pack 输出的文件列表:
lib/(编译后的 JS + d.ts)src/(源码,供开发模式使用)skills/(AI 技能描述)README.md、CHANGELOG.mdnode_modules/、tests/、.envcoverage/、.DS_Store语义化版本规则:
patch (0.1.0 → 0.1.1):bug 修复、文档更新minor (0.1.0 → 0.2.0):新增功能、新增命令major (0.1.0 → 1.0.0):破坏性变更、API 不兼容# 更新版本号
npm version patch # 或 minor / major
# 使用 Changesets(如项目已配置)
pnpm changeset # 创建变更记录
pnpm changeset version # 更新版本
# 发布到 npm
npm publish --access public
# 如果是 scoped 包(@zhin.js/xxx),需要 --access public
npm publish --access public
首次发布:
npm whoaminpm loginnpm view zhin.js-{name}# 1. 等待 npm 索引更新(通常 1-2 分钟)
# 2. 在新项目中测试安装
pnpm add zhin.js-{name}
# 3. 确认插件可正常加载
# 在 zhin.config 中添加插件名,启动 bot 验证
zhin.js-zhin.js-music-search.gitignore 和 .npmignorenpm pack --dry-run 预检>=x.x.x 而不是精确版本name 遵循 zhin.js-{name} 命名规范keywords 包含 zhin.jspeerDependencies 声明 zhin.jstype: "module" 已设置exports 包含 types + development + importfiles 白名单正确(含 src、lib、skills)tsc 编译通过npm pack --dry-run 文件列表正确