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

时间:2014-07-07 05:24:02

标签: javascript ember.js ember-cli

目前可能:

ember build --environment=production

......我想做一些这样的事情:

ember build --environment=production --baseurl=foo

config/environment.js仅传递environment的值。

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

4 个答案:

答案 0 :(得分:7)

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

......只是一个建议。不确定这是否是您正在寻找的内容。

答案 1 :(得分:6)

似乎不允许这样做:

查看node_modules/ember-cli/lib/commands/build.js,我们看到:

availableOptions: [
  { name: 'environment', type: String, default: 'development' },
  { name: 'output-path', type: path, default: 'dist/' }
],

...并在node_modules/ember-cli/lib/models/command.js

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

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

答案 2 :(得分:1)

您可以执行foo=bar ember build(但ember build foo=bar无法正常工作)

论证可以通过process.env.foo获得。

答案 3 :(得分:1)

扩展@ben的答案。

原始命令行参数在ember-cli-build.js

中的其他文件中可用

process.argv.[]

这样的命令

ember build staging

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

process.argv.includes('staging')

请参阅节点的文档以了解可用的内容。

https://nodejs.org/docs/latest/api/process.html