gt-sanity@4.0.0
概述
gt-sanity v4 适用于 Sanity 6 Studio。Sanity 在 6.9.2 中将 @sanity/ui 从 3 升级至 4,而包含这一变更的 Studio 包属于运行时单例,因此该插件现在会从你的 Studio 中解析它们,而非打包自己的副本。
使用 Sanity 6.0 至 6.8 的 Studio 仍采用 @sanity/ui 3,应继续使用 gt-sanity 3.1.x。请先将 Sanity 升级至 6.9.2 或更高版本,再迁移到 v4。
v4 不会更改插件的 API 或你存储的 Content。如果你的 Studio 使用 Sanity 6.9.2 或更高版本,升级只需安装即可。
重大变更
需要 Sanity 6.9.2 和 @sanity/ui 4
sanity 的对等依赖版本范围现为 ^6.9.2。此前为 >=5.0.0,因此即使插件的依赖项固定在 Sanity 5 系列,Sanity 6 也会被接受。安装时会正常解析而不发出警告,因此可能在没有任何明显提示的情况下出现重复的 Studio 运行时。
请注意,要求的是 Sanity 6.9.2,而非任意 Sanity 6。@sanity/ui 4 随 6.9.2 发布,因此使用 6.0 至 6.8 的 Studio 仍在使用 @sanity/ui 3 系列。请先升级 Sanity,再迁移到 gt-sanity 4。
Studio 包现为对等依赖
@sanity/ui、@sanity/icons、@sanity/schema 和 @sanity/mutator 原为常规依赖项,现改为由宿主 Studio 解析的对等依赖。将它们与不同系列的 Sanity 一同安装会嵌套安装第二个副本,导致出现重复的 schema 注册表和 styled-components 主题上下文。Sanity 6.9.2+ Studio 已提供这四个包,因此无需额外安装。
@sanity/document-internationalization 和 sanity-plugin-internationalized-array 的最低版本分别提升至 ^6.2.30 和 ^5.1.27。之前的最低版本可能会解析到仅支持 Sanity 5 的版本,这也会导致运行时重复。已移除未使用的 @sanity/util 依赖项。
仅支持 ESM
与 @sanity/ui 4 保持一致,已移除 CommonJS 构建产物和 require 导出条件。请使用 ESM import 语法导入该插件。
Node.js 22.12 或更高版本
从 18 升级至 22.12,与 sanity 和 @sanity/ui 4 保持一致。
继续使用 Sanity 5
gt-sanity 3.1.x 仍是适用于 Sanity 5 Studio 以及 Sanity 6.0 至 6.8 的受支持版本。它尚未弃用;如果你尚未准备好迁移 Studio,固定使用此版本也是合理的选择。
npm install gt-sanity@^3.1v3 的功能集保持不变。将 Sanity 升级到 6.9.2 或更高版本后,迁移到 v4 无需更改代码或内容。
修复
此次升级还修复了几个问题:
- 当源区域设置被重新标记时 (例如从
en改为en-US) ,发布翻译会遗漏整个翻译组。此前,发布功能通过语言标签在translation.metadata中识别源条目,因此变更前写入的元数据文档无法匹配任何内容,导致该组被静默跳过。现在会根据条目引用的文档区分源条目和翻译条目。 - 全部翻译和全部导入现在会显示进度。此前,在运行仍在进行时,两者看起来都处于空闲状态,因为它们只跟踪各自的请求,而不跟踪已入队的工作。
- **
gtStructureItems**固定使用某个 Sanity API 版本,从而消除了 Sanity 表示将会升级为错误的弃用警告。