【问题标题】:How to set flags in ember-cli, other than environment?如何在 ember-cli 中设置标志,而不是环境?
【发布时间】:2014-08-27 12:24:54
【问题描述】:

这是目前可能的:

ember build --environment=production

...而我想做这样的事情:

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

config/environment.js 只传入environment 的值。

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

【问题讨论】:

    标签: javascript ember.js ember-cli


    【解决方案1】:

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

    ...只是一个建议。不确定这是否是您要找的。​​p>

    【讨论】:

    • @Ben Lesh 感谢您的回答。这确实是我解决问题的方式(甚至在提出问题之前)。 +1 并检查给你! ...我只是想知道 ember-cli 是否允许附加参数/参数。
    • 是否可以运行类似 ember server --environment=test
    • 您也可以使用 process.env.VARNAME 直接在 environment.js 中访问任何环境变量
    【解决方案2】:

    看来这是不允许的:

    查看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 的每个子命令,定义的任何选项都将被丢弃。

    【讨论】:

      【解决方案3】:

      你可以做foo=bar ember build(但是做ember build foo=bar不起作用)

      该参数可通过process.env.foo 获得。

      【讨论】:

        【解决方案4】:

        延伸@ben 的回答。

        原始命令行参数在ember-cli-build.js 和其他文件中可用

        process.argv.[]

        这样的命令

        ember build staging

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

        process.argv.includes('staging')

        查看节点的文档以了解可用的内容。

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

        【讨论】:

          猜你喜欢
          • 2015-12-13
          • 2014-12-22
          • 1970-01-01
          • 2014-11-23
          • 1970-01-01
          • 1970-01-01
          • 2018-02-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多