2014-07-07 5 views
11

Dies ist derzeit möglich:Wie setze ich Flags in ember-cli, außer der Umgebung?

ember build --environment=production 

... und ich würde so etwas wie dies stattdessen tun:

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

aber config/environment.js nur im Wert von environment geben wird.

Ist es möglich, den Wert der anderen Optionen auch über die Befehlszeile zu erhalten?

Antwort

4

Sie können Umgebungsvariablen auf althergebrachte Weise (export WHATEVER=wee) vom Terminal oder als Teil eines Build-Skripts festlegen und dann in Ihrem Brocfile.js über den Knoten mit process.env.WHATEVER referenzieren. Danach würde es darum gehen, dass Brokkoli tut, was immer man mit ihnen machen muss. Sie könnten beispielsweise Dateien vorverarbeiten und Zeichenfolgen ersetzen.

... nur ein Vorschlag. Nicht sicher, ob du das suchst oder nicht.

+1

@ Ben Lesh danke für die Antwort. So habe ich das Problem gelöst (bevor ich die Frage überhaupt gestellt habe). +1 und überprüfen Sie zu! ... Ich wollte nur wissen, ob ember-cli zusätzliche Parameter/Argumente erlaubt. – bguiz

+0

ist es möglich, etwas wie ** ember server auszuführen - environment = test ** – SuperUberDuper

+0

Sie können auch auf jede Umgebungsvariable direkt in Ihrer environment.js mit process.env.VARNAME zugreifen –

6

Es scheint, dass dies nicht erlaubt ist:

in node_modules/ember-cli/lib/commands/build.js Sehen, sehen wir:

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

... und in node_modules/ember-cli/lib/models/command.js

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

... was bedeuten zusammen, dass Alle Optionen nicht definiert, für jeden Unterbefehl von ember, verworfen werden.

0

können Sie tun foo=bar ember build (aber tun ember build foo=bar nicht funktioniert) ist

Und das Argument über process.env.foo zur Verfügung.