#javascript #ember.js #ember-cli
#javascript #ember.js #ember-cli
Вопрос:
В настоящее время это возможно:
ember build --environment=production
… и я хотел бы вместо этого сделать что-то подобное:
ember build --environment=production --baseurl=foo
но config/environment.js
передается только значение environment
.
Возможно ли также получить значение других параметров, переданных в командной строке?
Ответ №1:
Вы могли бы установить переменные окружения старомодным способом ( export WHATEVER=wee
) из терминала или как часть сценария сборки, а затем ссылаться на них в вашем Brocfile.js
узле via с помощью process.env.WHATEVER
. После этого брокколи пришлось бы делать с ними все, что вам нужно. Вы могли бы предварительно обработать файлы и заменить строки, например.
… просто предложение. Не уверен, это то, что вы ищете, или нет.
Комментарии:
1. @ Ben Lesh спасибо за ответ. Действительно, именно так я решил проблему (еще до того, как задал вопрос). 1 и спасибо вам! … Я просто хотел узнать, разрешены ли в ember-cli дополнительные параметры / аргументы.
2. возможно ли запустить что-то вроде ember server —environment=test
3. Вы также можете получить доступ к любой переменной среды непосредственно в вашем environment.js с помощью process.env.VARNAME
Ответ №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')
смотрите документацию node о том, что доступно.