Как установить флаги в ember-cli, отличные от environment?

#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 о том, что доступно.

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