尝试在AWS/EBS(Amazon Web Services,Elastic Beanstalk)环境中设置Meteor.
Meteor开发运行可以传递命令行标志:--settings settings.json 其中settings.json 是包含服务器/客户端键/值配置的文件(作为格式正确的JSON).
Meteor的部署使用METEOR_SETTINGS环境变量,而不是在命令行中传递配置文件.如果提供的话,它应该包含一个json文档settings.json,例如:
$ METEOR_SETTINGS=$(cat settings.json)
$ echo $METEOR_SETTINGS
{ "public": { "s3path": "https://d2v4p3rms9rvi3.cloudfront.net" } }
Run Code Online (Sandbox Code Playgroud)
问题是当我METEOR_SETTINGS在EBS控制台中将值设置为此值时:
AWS/EBS丢弃引号,转义斜杠(如屏幕截图所示),并发送Meteor:
{public:{s3path:https:\/\/d2v4p3rms9rvi3.cloudfront.net}}
Run Code Online (Sandbox Code Playgroud)
如节点启动错误所示:
-------------------------------------
/var/log/nodejs/nodejs.log
-------------------------------------
npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
npm WARN deprecated semver behavior.
> meteor-dev-bundle@0.0.0 start /var/app/current
> node main.js
/var/app/current/programs/server/boot.js:283
}).run();
^
Error: METEOR_SETTINGS are not valid JSON: {public:{s3path:https:\/\/d2v4p3rms9rvi3.cloudfront.net}}
at packages/meteor/packages/meteor.js:21:1
at Package (packages/meteor/packages/meteor.js:42:1)
at /var/app/current/programs/server/packages/meteor.js:1277:4
at /var/app/current/programs/server/packages/meteor.js:1286:3
at /var/app/current/programs/server/boot.js:242:10 …Run Code Online (Sandbox Code Playgroud)