Условие для среды разработки в Handlebars Bigcommerce - PullRequest
0 голосов
/ 12 июля 2020

Работая с темой Cornerstone в Stencil, я хочу иметь возможность делать разные вещи в зависимости от того, нахожусь ли я в локальной среде NPM или на производственном сайте.

Просмотр текущего URL-адреса не достаточно, так как для этого страница должна быть уже загружена. Я хочу, чтобы в шаблоне были условные выражения с ручками, когда создается разметка. Что-то вроде:

{{#if developEnvironment '===' 'true'}}
  <p>I'm local</p>
{{else}}
  <p>I'm remote</p>
{{/if}}

Я не вижу ничего полезного в theme_settings vars.

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 15 июля 2020

BigCommerce предоставляет фактическую пару ключ / значение для определения того, находится ли в разработке или нет в контексте.

Я использую stencil CLI v2.1.0, поэтому для более старых версий это может быть не так.

{{#if in_development}}
 In Development
{{else}}
 In Production
{{/if}}
1 голос
/ 13 июля 2020

Вы можете попробовать использовать этот условный оператор:

{{#if settings.maintenance.secure_path '==' 'http://localhost:undefined'}}
  You are running on development.
{{else}}
  You are running on production.
{{/if}}
0 голосов
/ 12 июля 2020

Вы можете добавить свои собственные значения theme_settings.

Сначала перейдите к файлу ./config.json. Найдите в этом файле массив variations. Это должно выглядеть примерно так:

  "variations": [
    {
      "name": "Light",
      "id": "light",
      "meta": {...},
      "images": {...},
      "settings": {
          "developEnvironment": true,
...

В объекте настроек вы можете добавить свои собственные значения theme_settings, как я сделал выше: "developEnvironment": true,. Теперь в файле темы вы можете сделать что-то вроде этого:

    {{#if theme_settings.developEnvironment}}
        <!-- Do something -->
    {{/if}}
...