【问题标题】:METEOR_SETTINGS is not valid json error when deploying meteor app to heroku将流星应用程序部署到 Heroku 时,METEOR_SETTINGS 是无效的 json 错误
【发布时间】:2018-02-11 20:38:49
【问题描述】:

正如标题所说,我在将我的流星应用程序部署到 heroku 时遇到了这个错误。我已经用 JSONlint 验证了我的 settings.json 文件,并搜索了任何可能的修复方法,但我没有遇到任何可行的方法。我的错误日志如下所示。谁能告诉我可能出了什么问题?

2017-09-03T11:18:31.226632+00:00 heroku[web.1]: Starting process with command `.meteor/heroku_build/bin/node $NODEJS_PARAMS .meteor/heroku_build/app/main.js`
2017-09-03T11:18:33.344368+00:00 app[web.1]: /app/.meteor/heroku_build/app/programs/server/boot.js:391
2017-09-03T11:18:33.344382+00:00 app[web.1]: }).run();
2017-09-03T11:18:33.344383+00:00 app[web.1]:    ^
2017-09-03T11:18:33.344384+00:00 app[web.1]: 
2017-09-03T11:18:33.344385+00:00 app[web.1]: Error: METEOR_SETTINGS are not valid JSON: $(cat settings.json)
2017-09-03T11:18:33.344385+00:00 app[web.1]:     at packages/meteor.js:59:11
2017-09-03T11:18:33.344386+00:00 app[web.1]:     at packages/meteor.js:80:4
2017-09-03T11:18:33.344387+00:00 app[web.1]:     at packages/meteor.js:1380:3
2017-09-03T11:18:33.344388+00:00 app[web.1]:     at /app/.meteor/heroku_build/app/programs/server/boot.js:338:34
2017-09-03T11:18:33.344388+00:00 app[web.1]:     at Array.forEach (native)
2017-09-03T11:18:33.344389+00:00 app[web.1]:     at Function._.each._.forEach (/app/.meteor/heroku_build/app/programs/server/node_modules/underscore/underscore.js:79:11)
2017-09-03T11:18:33.344390+00:00 app[web.1]:     at /app/.meteor/heroku_build/app/programs/server/boot.js:158:5
2017-09-03T11:18:33.344391+00:00 app[web.1]:     at /app/.meteor/heroku_build/app/programs/server/boot.js:387:5
2017-09-03T11:18:33.344392+00:00 app[web.1]:     at Function.run (/app/.meteor/heroku_build/app/programs/server/profile.js:510:12)
2017-09-03T11:18:33.344392+00:00 app[web.1]:     at /app/.meteor/heroku_build/app/programs/server/boot.js:386:11
2017-09-03T11:18:33.415049+00:00 heroku[web.1]: State changed from starting to crashed
2017-09-03T11:18:33.400865+00:00 heroku[web.1]: Process exited with status 1

【问题讨论】:

  • 你能不能也显示你的Procfile
  • @Styx 抱歉,我对 heroku 很陌生,我不确定这是什么。我正在为 heroku 使用流星构建包,在我部署站点的步骤中没有提到这一点。
  • 好的,第一个问题:你做了heroku config:add METEOR_SETTINGS="$(cat settings.json)"吗?如果是,你是在 Win 还是 Mac/Lin 上做的?
  • @Styx 是的,我是在 win 上以及通过 heroku 网络应用程序 UI 完成的
  • 在 Heroku Web 管理仪表板中,您的 METEOR_SETTINGS 环境变量应该是您的 settings.json 文件的内容,而不是 $(cat settings.json)

标签: node.js meteor heroku


【解决方案1】:

你的问题在于这个命令:

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

您看,在 Windows 上,$(cat settings.json) 仅表示文本,但在 Mac/*nix 上表示“获取 settings.json 文件的内容”。

我建议使用 git bash cli 在此处运行此命令。链接到适用于 Windows 的 Git(使用 git bash cli):https://git-for-windows.github.io/

【讨论】:

    猜你喜欢
    • 2015-06-06
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2015-09-22
    • 1970-01-01
    • 2013-12-25
    相关资源
    最近更新 更多