我将Meteor应用程序中的一些管理/管理功能分解为另一个新功能,以减少客户端应用程序大小/帮助限制访问。我还在localhost和生产中单独安装了MongoDB。
我已经能够在不同的端口上运行每个应用程序,并在启动应用程序时连接到数据库传递环境变量:
# App 1
MONGO_URL=mongodb://localhost:27107/appDB meteor
# App 2
MONGO_URL=mongodb://localhost:27107/appDB meteor --port 4000
当然,我想在项目根目录中使用settings.json
来传递这些变量而不必指定它们(这里是App 2的settings.json
) :
{
"env": {
"PORT": 4000,
"MONGO_URL": "mongodb://localhost:27017/appDB"
}
}
使用meteor run --settings settings.json
传递这些变量。但是,Meteor不会识别设置文件。我可能会出错的任何想法?
更新1:
@Apendua非常友好地告诉我settings.json
根本不支持这种行为。改为设置bash别名。
更新2: @AshHimself指出Galaxy可以这种方式识别环境变量,但core Meteor docs如果在本地环境中工作则不是很清楚。
答案 0 :(得分:2)
我使用bash脚本使用本地MongoDB运行我的Meteor应用程序。
转到Meteor项目目录并在命令行(BASH)中写入:
echo 'MONGO_URL=mongodb://localhost:27017/meteorprojectname meteor run' > run.sh
更改脚本的权限,以便您可以在不使用sudo的情况下运行它:
sudo chmod 777 run.sh
现在您可以使用命令运行项目:
./run.sh
更多信息:http://meteor.hromnik.com/blog/meteor-run-without-creating-local-mongo-database
答案 1 :(得分:0)
这对我很有用。我要做的唯一改变就是只添加执行权限,然后将.sh
从文件名中删除。
echo 'MONGO_URL=mongodb://localhost:27017/meteorprojectname meteor run' > run
sudo chmod +x run
./run
答案 2 :(得分:0)
它不像shell脚本那样花哨,但是...这个衬里别名也可以使用。
alias <myapp>="export MONGO_URL=mongodb://<mongohost>:<port>/<database>; meteor run"
当然,将括号中的所有内容替换为您的口味和欢乐。