Settings.json到Heroku配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Settings.json到Heroku配置相关的知识,希望对你有一定的参考价值。

我正在向Heroku部署Meteor / Node应用程序。我在settings.json中有以下几行(用于OKGrow分析)。

{
  "public": {
    "analyticsSettings": {
      "Google Analytics": {
        "trackingId": "12345"
      },
      "Segment.io": {
        "apiKey": "abcdef"
      }
    }
  }
}

但是,公司政策不允许我将settings.json检查到源代码管理中。有没有办法使用Heroku配置变量来实现这一目标?还有其他解决方案吗?

答案

Heroku recommends configuring your application via environment variables

更好的解决方案是使用环境变量,并将密钥保留在代码之外。在传统主机上或在本地工作,您可以在bashrc文件中设置环境变量。在Heroku上,您使用配置变量。

幸运的是,Meteor will load settings from the METEOR_SETTINGS environment variable

在直接运行服务器时(例如从捆绑包中),您可以通过将JSON直接放入METEOR_SETTINGS环境变量来指定设置。如果设置对象包含名为public的密钥,则Meteor.settings.public将在客户端和服务器上可用。 Meteor.settings的所有其他属性仅在服务器上定义。即使没有指定设置,您也可以依赖Meteor.settingsMeteor.settings.public在客户端和服务器上定义对象(未定义)。运行时对Meteor.settings.public的更改将由新的客户端连接获取。

因此,只需设置应用的METEOR_SETTINGS环境变量,例如通过

heroku config:set METEOR_SETTINGS="$(cat settings.json)"

在您的开发机器上,或使用Heroku的Web界面。

以上是关于Settings.json到Heroku配置的主要内容,如果未能解决你的问题,请参考以下文章

聊聊vscode配置settings.json知其所以然(附大量配置)

vscode的settings.json配置

vsCode中配置保存格式化代码

VScoed Vue settings.json配置

Visual Studio Code如何关闭代码智能提示?

阻止异步提取在webpacked应用程序中完成