本指南面向站点运营者:在站点上安装插件的人员。如果你编写插件,请参阅迁移到插件 CLI。
升级你的依赖项
将 emdash 和你的插件包更新到最新版本,然后重新安装和重新构建:
pnpm up emdash @emdash-cms/plugin-audit-log @emdash-cms/plugin-webhook-notifier @emdash-cms/plugin-atproto
pnpm build
升级后,你的站点可能无需进一步更改即可构建和运行。如果构建失败或插件停止加载,请查看下面的破坏性变更。每一项都会准确告诉你需要更改什么。
有关每个包中变更的完整列表,请参阅 EmDash 更新日志中的相应条目。
破坏性变更
重命名:@emdash-cms/registry-cli 现在是 @emdash-cms/plugin-cli
早期版本将插件注册表 CLI 作为 @emdash-cms/registry-cli 提供,带有 emdash-registry 二进制文件。
该包现在是 @emdash-cms/plugin-cli,二进制文件是 emdash-plugin。旧包不再发布。
只有当你发布插件或从站点存储库运行注册表命令时,才会有此依赖项。大多数只安装插件的站点从未有过它。
我应该怎么做?
替换该包:
pnpm remove @emdash-cms/registry-cli
pnpm add -D @emdash-cms/plugin-cli
更新任何调用旧二进制文件的 package.json 脚本,将 emdash-registry 替换为 emdash-plugin:
emdash-registry publish --url https://example.com/my-plugin-1.0.0.tar.gz
emdash-plugin publish --url https://example.com/my-plugin-1.0.0.tar.gz
更改:已发布的插件使用默认导出
早期版本将第一方插件作为命名导出和工厂调用公开,例如 import { auditLogPlugin } from "@emdash-cms/plugin-audit-log" 用作 auditLogPlugin()。
这些插件现在提供一个默认导出,你可以直接传递给 plugins: 或 sandboxed:。没有工厂调用。这影响 @emdash-cms/plugin-audit-log、@emdash-cms/plugin-webhook-notifier 和 @emdash-cms/plugin-atproto。
我应该怎么做?
在 astro.config.mjs 中,删除导入周围的大括号和插件名称后的 ()。
以下示例显示了 @emdash-cms/plugin-audit-log 的更改,它在进程中运行并放在 plugins: 中:
import { auditLogPlugin } from "@emdash-cms/plugin-audit-log";
import auditLog from "@emdash-cms/plugin-audit-log";
export default defineConfig({
integrations: [
emdash({
plugins: [auditLogPlugin()],
plugins: [auditLog],
}),
],
});
对其他包应用相同的两个编辑。@emdash-cms/plugin-atproto 和 @emdash-cms/plugin-webhook-notifier 是沙箱插件,所以它们放在 sandboxed: 而不是 plugins: 中;导入更改是相同的。
| 包 | 默认导出绑定 |
|---|---|
@emdash-cms/plugin-audit-log | auditLog |
@emdash-cms/plugin-webhook-notifier | webhookNotifier |
@emdash-cms/plugin-atproto | atproto |
升级后
如果第三方插件仍然提供命名导出和工厂调用,则它尚未针对此版本进行更新。查看其更新日志。上面列出的所有第一方插件都使用默认导出形式。