当Hubot启动时自动加载.env

时间:2017-11-24 22:41:36

标签: javascript node.js heroku hubot

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

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

我已添加hubot-env(按照Hubot - load environmental variables from a file的建议)并且每次使用命令启动我的应用时都可以手动加载我的.env文件

hubot env load --filename=[filename]

我想自动执行此操作,因此当我启动机器人时会自动执行此命令。我在哪里可以配置它?

2 个答案:

答案 0 :(得分:1)

这是一个非常古老的问题,但我现在正在研究 Hubot,需要为后代保存这个。

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

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

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

答案 1 :(得分:0)

关于这个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