我想在启动时将命令行参数传递给我的Meteor应用程序。
例如--dev, - test或--prod,指示它是否在dev,test或prod环境中运行。然后它可以在启动时加载不同的资源等......
我在/server/server.js
中尝试过类似的东西var arguments = process.argv.splice(2);
console.log('cmd args: ' + JSON.stringify(arguments,0,4));
我参加了测试。还有很多其他只有随机命令行参数。
meteor --dev
控制台中的输出只是这个。
cmd args: [
"--keepalive"
]
将命令行参数导入Meteor应用程序的最佳方法是什么?
或者,这是解决更高级别问题的正确方法吗?如果没有,解决这个区分运行enviro的问题的正确方法是什么?
答案 0 :(得分:8)
Meteor不会将命令行参数转发给您的应用,如果它不知道它们的话。你有多种可能性:
meteor.js
的部分内容以转发无法识别的参数。这不应该太难,但它不是一个漂亮的解决方案。如果发生更新,您就遇到了麻烦。 :d $ METEOR_ENV=production meteor
我希望我能帮到你! :)
答案 1 :(得分:1)
它不起作用的原因是因为meteor
命令启动一个代理(获取你给出的参数),然后用--keepalive
启动流星应用程序。
process.argv
构建Meteor并运行它, meteor build --directory /my/build/path
将具有正确的值。