Angular 使用REST调用设置Ag网格许可证密钥

Angular 使用REST调用设置Ag网格许可证密钥,angular,ag-grid,Angular,Ag Grid,我正在我的Angular应用程序中评估Ag Grid的企业许可证版本。根据官方文件,建议在引导之前在main.ts文件中使用LicenseManager.setLicenseKey(“我的密钥”)。我按照程序进行操作,能够毫无错误地启动网格 当我不想在公共github存储库中提交密钥时,问题就出现了。因此,我从我的实时服务器获取它,方法是将它手动放在系统变量中,然后通过REST调用(使用crypto js加密)访问它。现在,如果我必须从REST调用中获取密钥,我需要在Angular bootst

我正在我的Angular应用程序中评估Ag Grid的企业许可证版本。根据官方文件,建议在引导之前在main.ts文件中使用
LicenseManager.setLicenseKey(“我的密钥”)
。我按照程序进行操作,能够毫无错误地启动网格

当我不想在公共github存储库中提交密钥时,问题就出现了。因此,我从我的实时服务器获取它,方法是将它手动放在系统变量中,然后通过REST调用(使用crypto js加密)访问它。现在,如果我必须从REST调用中获取密钥,我需要在Angular bootstrap之前进行XMLHttpRequest,并且我必须确保Angular bootstrap逻辑包含在REST调用的成功和失败中

现在,这些对我来说一点都不好,因为:

  • 我的应用程序启动时会有额外的网络延迟
  • REST调用上的引导依赖项
  • 使用XMLHttpRequest而不是Angular的HttpClient
有什么好方法可以设置此许可证密钥吗?我可以在生成过程中设置它吗?我可以从生成工具(Teamcity)传递它

注:

  • 我尝试在AppComponent或XMLHttpRequest调用中进行REST调用 在bootstrap成功方法中,但我仍然在控制台中遇到错误 我没有使用应用程序的许可证版本。如果我硬编码, 它很好用
  • 我被迫不使用git secret或任何其他库
有什么好方法可以设置此许可证密钥吗?我可以在ng构建期间设置它吗--myCustomConfiguration_LicenseKey='XYZ',我可以从构建工具(Teamcity)传递它吗

是-不使用REST呼叫

一旦执行了
ng build--prod
LicenseManager.setLicenseKey('my#u key#')
部分代码将进入生成输出的
main..js
文件

您可以有一个powershell脚本(或shell脚本),用实际的许可证密钥替换
#my#u key#

  • 在CI中,获得最新代码后,使用powershell(或shell)脚本将
    main.ts
    文件中的实际许可证密钥替换为
    #my#u key#
    。将此步骤添加到CI

  • 触发器
    ng构建--prod


  • 感谢帕里托斯的回复,但在这种情况下,我的密钥将清晰地显示在我的浏览器源代码中,即使我进行了产品缩小构建。如果您不想这样做,这是正确的。无论如何,我会保留答案——也许这对其他人会有帮助。