Назад

gt-sanity@4.0.0

Fernando Aviles avatarFernando Aviles
gt-sanityv4.0.0sanitycmstranslationmajor

Обзор

gt-sanity v4 предназначен для Sanity Studio 6. В версии 6.9.2 Sanity перешла с @sanity/ui 3 на @sanity/ui 4, а пакеты Studio, содержащие это изменение, являются синглтонами среды выполнения, поэтому плагин теперь разрешает их из вашей Studio, а не включает собственные копии в сборку.

Studio на Sanity 6.0–6.8 по-прежнему используют поколение @sanity/ui 3 и должны оставаться на gt-sanity 3.1.x. Сначала обновите Sanity до версии 6.9.2 или новее, затем переходите на v4.

В v4 API плагина и сохранённый контент не меняются. Если ваша Studio работает на Sanity 6.9.2 или новее, для обновления достаточно установить новую версию.


Критические изменения

Требуются Sanity 6.9.2 и @sanity/ui 4

Диапазон peer-зависимости sanity теперь — ^6.9.2. Ранее он был >=5.0.0, что допускало Sanity 6, хотя зависимости плагина закрепляли версию Sanity 5. Установка проходила без предупреждений, поэтому могла незаметно появиться дублирующаяся среда выполнения Studio.

Обратите внимание: требуется именно Sanity 6.9.2, а не любая версия Sanity 6. @sanity/ui 4 появился в 6.9.2, поэтому Studio с версиями от 6.0 до 6.8 по-прежнему используют @sanity/ui 3. Сначала обновите Sanity, затем переходите на gt-sanity 4.

Пакеты Studio теперь являются peer-зависимостями

@sanity/ui, @sanity/icons, @sanity/schema и @sanity/mutator раньше были обычными зависимостями, а теперь стали peer-зависимостями, получаемыми из хостового Studio. Их установка вместе с другой версией Sanity приводила к вложенной установке второй копии, из-за чего дублировались реестры схем и контексты тем styled-components. Studio Sanity версии 6.9.2 и выше уже включает все четыре пакета, поэтому ничего дополнительно устанавливать не нужно.

Минимальные версии @sanity/document-internationalization и sanity-plugin-internationalized-array были повышены до ^6.2.30 и ^5.1.27. Предыдущие минимальные версии могли разрешаться в релизы, поддерживающие только Sanity 5, что также могло привести к дублированию среды выполнения. Неиспользуемая зависимость @sanity/util была удалена.

Только ESM

Сборка CommonJS и условие экспорта require удалены, как и в @sanity/ui 4. Импортируйте плагин с помощью синтаксиса ESM import.

Node.js 22.12 или новее

Вместо 18, в соответствии с sanity и @sanity/ui 4.


Использование Sanity 5

gt-sanity 3.1.x по-прежнему является поддерживаемой веткой для Studio в Sanity 5 и Sanity 6.0–6.8. Она не устарела, и закрепить эту версию — вполне допустимый вариант, если вы ещё не готовы перенести Studio.

npm install gt-sanity@^3.1

Набор функций v3 остаётся без изменений. При обновлении Sanity до версии 6.9.2 или более поздней переход на v4 не потребует изменений в коде или контенте.


Исправления

Вместе с обновлением исправлено несколько ошибок:

  • Publish Translations удалял целые группы переводов при изменении метки исходной локали (например, с en на en-US). При публикации исходная запись в translation.metadata определялась по языковой метке, поэтому документ метаданных, созданный до изменения, ни с чем не сопоставлялся, а группа пропускалась без сообщения об ошибке. Теперь исходные записи и записи переводов различаются по документу, на который они ссылаются.
  • перевести всё и Import All теперь отображают ход выполнения. Ранее оба действия выглядели бездействующими, пока запуск ещё выполнялся, поскольку каждое отслеживало только собственный запрос, а не поставленную в очередь работу.
  • gtStructureItems закрепляет версию API Sanity, устраняя предупреждение об устаревании, которое, по словам Sanity, станет ошибкой.

Ссылки