Wie ein meteor, der Anwendung weiß, wenn er läuft, auf Entwicklungs -, test-oder Produktionsumgebung?
Ich verschiedene Konten Anbieter die Konfiguration, wenn die meteor-Anwendung läuft als Entwicklungs -, Test-oder Produktionsumgebung.
- Leicht erzielt werden, indem eine switch-Anweisung in Meteor.Autostart-Funktion auf der server-Seite. Siehe meine ausführliche Antwort unten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Meteor 1.3 diese flags funktionieren out of the box:
Auf dem server:
Meteor setzt die Umgebungsvariable NODE_ENV zu "Entwicklung", wenn Sie laufen
meteor
. In der Produktion, können Sie die variable, um was Sie wollen, sonst wird es default auf "production".Update: ich erstellt eine smart-Paket um dies zu ermöglichen, arbeiten auf dem client und server.
Setzen Sie einfach die Berechtigung Regeln, die in einer server-Datei.
Können Sie
Meteor.Einstellungen
gepaart mit der--settings
option wird verwendet, wenn ausgeführtmeteor run
odermeteor deploy
.Zum Beispiel, laufen in
dev
- Modus, erstellen Sie eine JSON-Datei, nennen Sie es meteorConfigDev.json, und setzen Sie die folgenden in es:Führen Sie Ihre app mit
Auf dem server und auf dem client können Sie auf die "mode" mit:
Beachten Sie, dass die Einstellungen in den "öffentlichen" sind sowohl auf dem server und dem client in der Erwägung, dass alles andere (in diesem Fall "anotherProperty") ist nur auf dem server verfügbar.
Können Sie dann verschiedene Konfigurationsdateien für verschiedene Umgebungen.
Sehr einfach. Ich bin mit meinem app auf fünf (ja, fünf!) unterschiedliche Umgebungen. Ich einfach verwenden Sie eine switch-Anweisung auf die ROOT_URL wie unten dargestellt für die vier verschiedenen Umgebungen. Natürlich, Sie können verwenden Sie eine if-else, wenn Sie nur zwei Umgebungen. Funktioniert auf dem server. Machen Sie einfach eine neue Datei namens startup.js und verwenden Sie das code-Beispiel unten. Prost!
Im Allgemeinen, das format für eine switch-Anweisung in javascript ist
UPDATE: Beachten Sie, dass Meteor bietet jetzt
Meteor.absoluteUrl()
, die ähnlichprocess.env.ROOT_URL
mit der Zugabe von extra-Funktionalität. Sehen docs.env
, aber das sollte man nicht ableiten, Ihre Umwelt aus einer URL, da die URL ändern können, unabhängig von Ihrer Umgebung aus verschiedenen Gründen. Wenn Ihre Kolleginnen und Kollegen nicht wissen, dass Ihre ROOT_URL hat eine "Magische" extra-Sinn für Ihre app-Logik gibt es 3 realistische Fällen brechen würde, dass Ihre app auf die Produktion: 1) entfernen Siewww.
, 2) ändernhttp
zuhttps
, 3) haben mehrere URLs, gehören zu Ihren Produktions-app, und ändern Sie die Standard-URL. Auch ist es gegen die TROCKEN Prinzip.env
variable (z.B.process.env.METEOR_ENVIRONMENT
) oder in der Konfiguration, wie go-oleg hat.Gibt es eine open - pull-request auf github, die erlauben würde, die. Kommentar/Vote für ihn, so ist es wahrscheinlicher, zu erhalten, enthalten!
Einem sehr unordentlichen Weg, dies zu erreichen
https://github.com/possibilities/meteor-environment-hooks
Hinweis: die Schnittstelle ist IMHO OK, die Umsetzung ist chaotisch