Управление расширениями приложений Shopify в разных средах

Недавно Shopify начал требовать, чтобы все приложения, интегрированные с темой, использовали расширения Theme App Extensions. Существует множество документации, связанной с началом работы с Theme App Extensions, например, документация Shopify, но очень мало информации об управлении этими расширениями в средах dev, staging и production. Проблема управления расширениями в разных средах связана с тем, как разрабатываются приложения Shopify, и с ограничениями вокруг Theme App Extensions.

При создании одного веб-приложения на Shopify обычно каждый разработчик в команде имеет свой собственный экземпляр приложения Shopify в Shopify, чтобы они могли просматривать изменения кода веб-приложения, которые они вносят, не влияя на работу других членов команды. Дополнительные экземпляры приложений Shopify будут существовать для других сред, таких как staging и production. Однако Shopify требует, чтобы для каждого приложения Shopify существовало только одно расширение Theme Appension. Когда команда Shopify CLI shopify extension create выполняется в терминале (и выбирается Theme App Extension), каталог theme-app-extension создается в текущем каталоге веб-приложения (это должен быть корень проекта). Этот каталог включает файл .env, который идентифицирует выбранное приложение Shopify (например, одно из приложений для разработчиков или приложение для постановки/производства). Повторное выполнение команды приводит к тому, что Shopify CLI возвращает ошибку, поскольку для каждого приложения разрешено только одно расширение Theme App Extension*.

Потенциально простым обновлением может быть обновление файла .env в каталоге theme-app-extension для указания на другое приложение Shopify. Однако переменные окружения, необходимые для указания на другое приложение Shopify, доступны только для приложения Shopify, которое было «зарегистрировано» в Theme App Extension. Но мы не можем создать или зарегистрировать новое приложение Shopify с помощью нашего текущего расширения Theme App Extension, так что же нам делать?!

После долгих раздумий, поисков в интернете и долгих миль, мы нашли решение.

  1. Переименуйте существующий каталог theme-app-extension в любой другой, например theme-app-extension-tmp.
mv theme-app-extension theme-app-extension-tmp
Вход в полноэкранный режим Выход из полноэкранного режима
  1. Снова выполните команду CLI shopify extension create, указав новое приложение Shopify для регистрации.
shopify extension create
Войдите в полноэкранный режим Выход из полноэкранного режима
  1. Удалите автоматически созданный каталог theme-app-extension.
rm -rf theme-app-extension
Войти в полноэкранный режим Выход из полноэкранного режима
  1. Если необходимо зарегистрировать больше приложений Shopify, вернитесь к шагу 2. В противном случае перейдите к шагу 5.

  2. Переименуйте каталог theme-app-extension-tmp обратно в theme-app-extension.

mv theme-app-extension-tmp theme-app-extension
Войдите в полноэкранный режим Выйдите из полноэкранного режима

В итоге у нас есть исходный каталог theme-app-extension и мы зарегистрировали все приложения Shopify, которые хотели зарегистрировать. Теперь, когда мы переходим в терминале в каталог theme-app-extension, мы можем запустить команду shopify extension connect CLI, и нам будут представлены все зарегистрированные приложения Shopify.

cd theme-app-extension
shopify extension connect
Вход в полноэкранный режим Выйти из полноэкранного режима

Выбор одного из них позволит нам выполнять любые дополнительные команды CLI, направленные на тематическое расширение приложения Shopify.

Надеюсь, это сэкономит вам много часов, которые потребовались нам!

*Я должен отметить, что в этом посте часто упоминается «приложение». Существует разница между «приложением Shopify» и «веб-приложением». «Веб-приложение» — это код приложения, который обеспечивает работу приложения Shopify. «Приложение Shopify» относится к фактическому приложению, созданному в пользовательском интерфейсе Shopify Partners.

Узнайте больше о том, как The Gnar создает приложения Shopify.

Оцените статью
Procodings.ru
Добавить комментарий