【问题标题】:Automate loading .env when Hubot startsHubot 启动时自动加载 .env
【发布时间】:2017-11-24 22:41:36
【问题描述】:

我正在使用 Heroku 开发一个带有 Hubot 框架的应用程序。 我在 Heroku 上设置了一些配置变量,当我部署我的代码时,我的 process.env 引用工作正常。

但是,我在使用配置变量设置本地开发系统进行测试时遇到了麻烦。我有一个 .env 文件,并从 Heroku 获取了所有配置变量。但是,当我在命令行启动我的应用程序时,似乎没有加载 .env 文件。

我添加了hubot-env(如Hubot - load environmental variables from a file 所建议的那样),并且可以在每次使用命令启动我的应用程序时手动加载我的 .env 文件

hubot env load --filename=[filename]

我想自动化这个,所以这个命令会在我启动我的机器人时自动执行。我在哪里可以配置这个?

【问题讨论】:

    标签: javascript node.js heroku hubot


    【解决方案1】:

    据我所知,关于这个issue,Hubot 不会读取 .env 文件。我的解决方案不是每次都导出变量,而是创建 bash-script run.sh 文件:

    #!/bin/bash
    
    export HUBOT_OWM_APIKEY=MY_OWM_API_KEY;
    export HUBOT_WEATHER_UNITS=metric;
    
    HUBOT_SLACK_TOKEN=xoxb-xxxx-MY_SLACK_TOKEN ./bin/hubot --adapter slack
    

    然后在 bash 中

    $ chmod +x run.sh   # provides the permissions
    $ ./run.sh          # starts the bot with necessary variables
    

    【讨论】:

      【解决方案2】:

      这是一个非常古老的问题,但我现在正在研究 Hubot,需要将其保存以供后代使用。

      这就是我现在的做法。它无需添加额外的文件或包即可工作:

      "scripts": {
          "start": "export $(cat .env | xargs) && ./bin/hubot -a slack"
        }
      

      将您的适配器从 slack 更改为您正在使用的任何适配器。

      【讨论】:

        猜你喜欢
        • 2020-11-24
        • 2014-01-27
        • 2022-08-11
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        相关资源
        最近更新 更多