如何在 ember-cli 中设置标志,而不是环境?
Posted
技术标签:
【中文标题】如何在 ember-cli 中设置标志,而不是环境?【英文标题】:How to set flags in ember-cli, other than environment? 【发布时间】:2014-08-27 12:24:54 【问题描述】:这是目前可能的:
ember build --environment=production
...而我想做这样的事情:
ember build --environment=production --baseurl=foo
但config/environment.js
只传入environment
的值。
是否也可以获取命令行传入的其他选项的值?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何在 ember-cli 中设置标志,而不是环境?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ngCookies 中设置 httpOnly 标志?
如何在 Spring Boot 中设置同站点 cookie 标志?