2016-11-16 7 views
6

Angenommen, ich habe einen Codeblock, der nur in einer Staging-Umgebung vorhanden (oder ausgeführt) werden soll. Ich habe eine Umgebungsvariable in dieser Umgebung gesetzt (zB ENV = 'Staging'), gibt es eine Möglichkeit für TypeScript, während der Kompilierung auf diese Variable zuzugreifen?Umgebungsvariablen TypeScript

Beispiel:

if (Enivronment['ENV'] == 'staging') console.log('testing');

, die kompilieren würde (die redundante, aber efffective) if ('staging' == 'staging') ... auf der oben genannten Umgebung?

+0

Wenn dies eine Knoten-Anwendung, die Sie leicht Umgebungsvariablen zur Laufzeit zugreifen können. Ist es wichtig, dass die Umgebung zur Kompilierungszeit injiziert wird? – Marty

+0

Es hängt davon ab, wie Ihre TS-App kompiliert wird. Wenn Sie beispielsweise zum Erstellen der App Webpack verwenden, können Sie mit 'DefinePlugin' (https://webpack.github.io/docs/list-of-plugins.html#defineplugin) den Wert von Umgebungsvariablen eingeben zur Kompilierzeit. – yihangho

+0

@Marty Ja, es ist eine Flask-Anwendung, die Webassets ausführt (denen die Funktionen fehlen, die an anderer Stelle in dieser Frage bezüglich der Einfügbarkeit von Webpack aufgeführt sind) –

Antwort

1

gibt es eine Möglichkeit für Typoskript, dass Variable während der Kompilierung zuzugreifen

Yup. Verwenden Sie vorzugsweise process.env, das funktioniert wie in Knoten und kann mit Webpack mit --define verwendet werden.

Mehr

Beispiel zeigt, wie es zu benutzen für Build-Ausgabe wechselt: https://basarat.gitbooks.io/typescript/content/docs/tips/build-toggles.html

+0

Leider ist es keine Knotenanwendung –

+1

, die es nicht sein muss. Webpack arbeitet mit Web-Anwendungen und das ist auch der Link. – basarat

+0

verwendet auch kein Webpack. –