angular - 使用 REST 调用设置 Ag-Grid 许可证密钥
问题描述
我正在我的 Angular 应用程序中评估 Ag-Grid 的企业许可版本。根据官方文档,建议LicenseManager.setLicenseKey('my key')
在 Angular 引导之前在 main.ts 文件中使用。我按照程序进行操作,并且能够毫无错误地启动网格。
当我不想在公共 github 存储库中提交我的密钥时,问题就开始了。因此,我从我的实时服务器中获取它,通过将它手动放在系统变量中并通过 REST 调用访问它(使用 crypto-js 加密)。现在,如果我必须从 REST 调用中获取密钥,我需要在 Angular 引导之前创建一个 XMLHttpRequest,并且我必须确保 Angular 引导逻辑进入该 REST 调用的成功和失败。
现在,这些看起来对我来说根本不好:
- 我的应用程序启动会有额外的网络延迟
- Bootstrap 对 REST 调用的依赖。
- 使用 XMLHttpRequest 而不是 Angular 的 HttpClient。
有什么好的方法来设置这个许可证密钥吗?我可以在 期间设置它ng build --myCustomConfiguration_LicenseKey='XYZ'
,我可以从构建工具(Teamcity)传递它吗?
笔记:
- 我尝试在引导成功方法中在 AppComponent 或 XMLHttpRequest 调用中进行 REST 调用,但我仍然在控制台中收到错误,表明我没有使用应用程序的许可证版本。如果我对其进行硬编码,它可以正常工作。
- 我被迫不使用 git-secret 或任何其他库。
解决方案
有什么好的方法来设置这个许可证密钥吗?我可以在 ng build --myCustomConfiguration_LicenseKey='XYZ' 期间设置它,我可以从构建工具(Teamcity)传递它吗?
是的 - 不使用 REST 调用。
完成后,您ng build --prod
的LicenseManager.setLicenseKey('#my_key#')
部分代码将进入main.<randomString>.js
生成的输出文件。
您可以使用一个 powershell 脚本(或 shell 脚本)替换#my_key#
您的实际许可证密钥。
或者
在您的 CI 中,一旦您获得最新代码,请使用 powershell(或 shell)脚本替换文件
#my_key#
中的实际许可证密钥。main.ts
将此步骤添加到您的 CI。扳机
ng build --prod
推荐阅读
- animation - 我需要垂直文本动画
- angular - Angular SystemJS 少
- sql - 具有不同货币/定价的 Rails 产品数据库
- mysql - Node.js:想在我的 Saas 应用程序中为新客户端使用单独的数据库
- javascript - 如何通过触发器将 webServer 重定向到 Chrome 浏览器 - Javascript
- javascript - 安装meteor.js 时出现超时错误?
- c++ - 支持从 C++ 代码读取或写入 HIVE 的驱动程序
- android - Android Studio 3.1.3 版本更新问题
- flutter - 如何在persistentFooterButtons中居中FloatingActionButton
- firebase - firebase 云消息传递中的单个主题允许多少个订阅设备