Сборка Electron для разных сред - PullRequest
0 голосов
/ 06 февраля 2020

Ахой,

У меня есть электронное приложение, в котором я в настоящее время вручную редактирую URL в одном из моих файлов, в зависимости от среды (dev, prod, test), для которой я буду создавать sh. Однако я бы хотел определить это в своем сценарии, чтобы мне не приходилось каждый раз переписывать URL-адрес (например, электронный строитель -w --x64 --ia32 --test или что-то в этом роде).

Насколько я могу судить, возможно иметь разные файлы сборки (https://github.com/electron-userland/electron-builder/issues/1109), но я не могу понять, как должна быть установка, и, кроме того, я могу ' t понять, как получить атрибуты из файлов сборки (например, build / publish / url). Кажется возможным получить значок и имя (https://github.com/electron-userland/electron-builder/issues/639), но не URL-адрес?

package.json

    {... ,
      "build":{
        ... ,
        "publish":[{
          ... ,
          "url": "https://my.website.url" <--- Change on build and fetchable in code?
        }],
      }
    }

Извините, если я что-то пропустил - я думаю, что-нибудь написать явное руководство как только я это поняла.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Я нашел (хотя и немного hack'i sh imo) решение, которое сейчас буду использовать.

Я просто добавил "- c .extraMetadata.productName = dev-" ( и тестировать вместо dev для тестовой сборки) в сценарии сборки, а затем в своем коде я проверю, какая среда была добавлена ​​к сборке, и соответствующим образом переключу URL. Хорошая вещь в этом подходе состоит в том, что теперь я также могу видеть, на какую среду указывает файл .exe!

Я все еще убежден, что «правильный» способ - это иметь несколько файлов YAML, как предлагает Райн, но описанный выше подход кажется гораздо более простым и более контролируемым.

0 голосов
/ 06 февраля 2020

Эти решения не очень элегантны, но все же могут помочь:

Заранее подготовьте различные файлы конфигурации

Подготовьте различные конфигурации YAML и скопируйте их в electron-builder.yml перед сборкой, в зависимости от вашей платформы или типа.

Создание конфигурации сборки динамически

Это лучше работает для более сложных настроек:

Подготовка YAML или что-то еще, что содержит все конфигурации, которые являются истинными для каждой платформы, и фиктивное значение (или оставьте его пустым) для той, которую вы хотите изменить во время сборки. Я использую файл YAML для этого, потому что я могу скопировать и вставить его в electron-builder.yml на случай, если я захочу чего-то нового, но вы лучше знаете, что вам нужно.

Перед сборкой вы запускаете скрипт узла, который:

  • опционально удаляет старую electron-builder.yml из предыдущей сборки, если она есть
  • читает подготовленный файл конфигурации
  • заменяет значения-макеты реальной информацией в прочитанных данных
  • записывает electron-builder.yml с измененными данными

Ваш скрипт npm будет выглядеть как node prepareYml.js && electron-builder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...