使用REST调用设置Ag-Grid许可证密钥

时间:2018-11-25 17:48:46

标签: angular ag-grid

我正在Angular应用程序中评估Ag-Grid的企业许可证版本。根据官方文档,建议在Angular引导程序之前在main.ts文件中使用LicenseManager.setLicenseKey('my key')。我按照此步骤进行操作,就能正常启动网格。

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

现在,这些看起来对我一点都不好,

  • 启动我的应用会有额外的网络延迟
  • 对REST调用的引导依赖性。
  • 使用XMLHttpRequest代替Angular的HttpClient。

有什么好的方法来设置此许可证密钥吗?我可以在ng build --myCustomConfiguration_LicenseKey='XYZ'期间进行设置吗,可以从构建工具(Teamcity)中传递它吗?

注意:

  • 我尝试在AppComponent或XMLHttpRequest调用中进行REST调用 在引导成功方法中,但仍然在控制台中出现错误 我没有使用该应用程序的许可证版本。如果我硬编码, 效果很好。
  • 我被迫不使用git-secret或任何其他库。

1 个答案:

答案 0 :(得分:0)

  

有什么好的方法来设置此许可证密钥吗?我可以在ng build --myCustomConfiguration_LicenseKey ='XYZ'期间设置它,我可以从构建工具(Teamcity)传递它吗?

是-不使用REST调用。

执行ng build --prod后,代码的LicenseManager.setLicenseKey('#my_key#')部分将进入生成的输出的main.<randomString>.js文件中。

您可以拥有一个Powershell脚本(或Shell脚本),该脚本将#my_key#替换为您的实际许可证密钥。

OR

  1. 在CI中,一旦获得最新代码,就用Powershell(或Shell)脚本将#my_key#文件中的main.ts替换为您的实际许可证密钥。将此步骤添加到您的CI。

  2. 触发ng build --prod