Установить лицензионный ключ Ag-Grid с помощью вызова REST - PullRequest
0 голосов
/ 25 ноября 2018

Я оцениваю версию Ag-Grid для корпоративной лицензии в моем приложении Angular.Согласно официальному документу, рекомендуется использовать LicenseManager.setLicenseKey('my key') внутри файла main.ts перед загрузкой Angular.Я следую процедуре и могу запустить сетку без ошибок.

Проблема начинается, когда я не хочу фиксировать свой ключ в общедоступном репозитории github.Следовательно, я получаю его с моего живого сервера, помещая его вручную в системную переменную и получая к нему доступ через вызов REST (используя шифрование crypto-js).Теперь, если мне нужно получить ключ от вызова REST, мне нужно сделать запрос XMLHttpRequest до начальной загрузки Angular, и я должен убедиться, что логика угловой загрузки проходит внутри успеха и неудачи этого вызова REST.

Теперь,это выглядит совсем нехорошо для меня, поскольку:

  • Для моего приложения будет иметь место дополнительная латентность сети
  • Зависимость начальной загрузки от вызова REST.
  • ИспользованиеXMLHttpRequest вместо HttpClient от Angular.

Есть ли хороший способ настроить этот лицензионный ключ?Могу ли я установить его во время ng build --myCustomConfiguration_LicenseKey='XYZ', который я могу передать из инструмента сборки (Teamcity)?

Примечание:

  • Я попытался сделать вызов REST внутри вызова AppComponent или XMLHttpRequest вМетод успешной загрузки, но все равно я получаю сообщение об ошибке в консоли, что я не использую лицензионную версию приложения.Если я жестко закодирую его, он будет работать нормально.
  • Я вынужден не использовать git-secret или любую другую библиотеку.

1 Ответ

0 голосов
/ 26 ноября 2018

Есть ли хороший способ настроить этот лицензионный ключ?Могу ли я установить его во время сборки ng --myCustomConfiguration_LicenseKey = 'XYZ', которую я могу передать из инструмента сборки (Teamcity)?

Да - без использования вызова REST.

Один развы делаете ng build --prod, часть кода LicenseManager.setLicenseKey('#my_key#') входит в файл main.<randomString>.js сгенерированного вывода.

У вас может быть один сценарий powershell (или сценарий оболочки), который заменяет #my_key# на ваш фактическийлицензионный ключ.

ИЛИ

  1. В вашем CI, как только вы получите последний код, замените #my_key# вашим действительным лицензионным ключом в файле main.ts на powershell (или shell) скрипт.Добавьте этот шаг к своему CI.

  2. Триггер ng build --prod

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