Raycast拓展发布避坑
3 分钟
680 字
加载中 阅读
推荐阅读 Raycast

初次发布h2

参考 Raycast官方文档 中对项目资源的推荐组织方式,包括图标、截图、package.jsonCHANGELOG.md等。

项目结构h3

Terminal window
.
├── assets
└── extension-icon.png # 应用图标
├── metadata
├── picgo-1.png # Raycast Store 页面中展示的截图
├── picgo-2.png
├── ..
├── src # 源代码
├── package-lock.json
├── package.json
├── raycast-env.d.ts
├── README.md
├── CHANGELOG.md # 更新日志
..

图标h3

推荐使用 Raycast 官方推荐的图标制作工具 Icon Maker by Raycast 进行制作,默认存放在assets文件夹下,命名为extension-icon.png,尺寸为512 * 512

商店页面截图h3

推荐使用 Raycast 提供的截图工具(如下),默认快捷键cmd + option + shift + M

capture

并存放在metadata文件夹下,发布后会显示到商店页面中,最多可显示 6 张截图。

store

CHANGELOG.mdh3

按如下格式写好你的更新日志,并留出发布日期的占位符{PR_MERGE_DATE},这个日期会在你的 PR 被官方拓展仓库合并后替换为合并日期。

# Picgo Changelog
## [Initial Version] - {PR_MERGE_DATE}
- Add command `Upload Images`, supports local or clipboard images uploading via **PicGo**.
- Remembering your uploader configuration with **Raycast LocalStorage**.
- ...

发布流程h3

完成以上设置后,运行npm run publishnpx @raycast/api@latest publish,Raycast 会自动跑一次 build、lint等检查流程,然后 fork 一次官方的拓展仓库 https://github.com/raycast/extensions ,并从这个 fork 仓库向官方仓库提交 PR,在官方审核通过并 merge 之后,即可上线 Raycast Store

后续更新h2

在完成新 feature 或者 bugfix 之后,要进行拓展更新。

拉取其他人的 contributionh3

如果你的扩展有其他人贡献了代码(或者你直接在 GitHub 上编辑过),直接运行 npm run publish 会失败。此时需要先运行npx @raycast/api@latest pull-contributions来拉取贡献更改,并且在本地解决冲突。

IMPORTANT

需要注意的是,这个命令拉取的 contribution 是依赖于你本地CHANGELOG.md中声明的最新版本的,在运行之前务必写好你的更新内容,并留出{PR_MERGE_DATE}占位符(如下)。否则这个命令可能拉取上个版本的 contribution 代码,解决冲突时会引入莫名其妙的旧代码。

# Picgo Changelog
## [Bugfix: Plugin Search Error] - {PR_MERGE_DATE}
- Fix error when a plugin package data has no `description` field.
## [New Preferences] - 2026-02-21
- Add preference `Auto Copy URLs` to control whether to copy right after uploads complete.
- ...

拉取贡献后,在没有其他人贡献的情况下,需要解决的冲突基本上就只有CHANGELOG.md中的更新日志内容了(Raycast 官方会在你上个版本 PR 的基础上提交一次来填充这个{PR_MERGE_DATE},导致冲突)。

解决完毕后,再运行一次npm run publish即可发起 PR,后续流程和首次发布一致。

Comments