Javascript 如何在ember cli中设置标志,而不是环境?

Javascript 如何在ember cli中设置标志,而不是环境?,javascript,ember.js,ember-cli,Javascript,Ember.js,Ember Cli,目前这是可能的: ember build --environment=production 。。。我想这样做: ember build --environment=production --baseurl=foo 但是config/environment.js只在environment的值中传递 是否也可以获取在命令行中传入的其他选项的值?似乎不允许这样做: 查看node\u modules/ember cli/lib/commands/build.js,我们看到: availableOpt

目前这是可能的:

ember build --environment=production
。。。我想这样做:

ember build --environment=production --baseurl=foo
但是
config/environment.js
只在
environment
的值中传递


是否也可以获取在命令行中传入的其他选项的值?

似乎不允许这样做:

查看
node\u modules/ember cli/lib/commands/build.js
,我们看到:

availableOptions: [
  { name: 'environment', type: String, default: 'development' },
  { name: 'output-path', type: path, default: 'dist/' }
],
。。。在
node\u modules/ember cli/lib/models/command.js中

this.availableOptions.forEach(function(option) {
  knownOpts[option.name] = option.type;
});

。。。这意味着,对于
ember
的每个子命令,任何未定义的选项都将被丢弃。

您可以从终端或作为构建脚本的一部分使用老式方式(
export where=wee
)设置环境变量,然后使用
process.env.which
通过节点在
Brocfile.js
中引用它们。在那之后,这将是一个让花椰菜做任何你需要做的事情。例如,您可以预处理文件并替换字符串


。。。只是一个建议。不确定这是否是您想要的。

您可以执行
foo=bar ember build
(但是执行
ember build foo=bar
不起作用)


这个论点可以通过
process.env.foo

来扩展@ben的答案

原始命令行参数在
ember cli build.js
和来自

process.argv.[]

这样的命令

ember构建阶段

您可以通过以下方式访问:

process.argv.包括('staging')

有关可用的内容,请参阅节点文档


@Ben Lesh谢谢你的回答。这确实是我解决问题的方法(甚至在问问题之前)+1和检查给你。。。我只是想知道ember cli是否允许其他参数/参数。是否可以运行像ember server--environment=Test这样的程序?您还可以使用process.env.VARNAME直接访问environment.js中的任何环境变量