Umgang mit Produktions - /dev - /Test-configs in sails.js
Weiß wer, der beste Weg, damit umzugehen prod/dev/test-config Wechsel in die Segel? Ich mag wirklich, wie actionhero.js lädt automatisch config/environment/{env}.js, basierend auf dem Inhalt der NODE_ENV aber ich sehe nicht eine integrierte Möglichkeit, etwas ähnliches zu tun im Segel. Ich bemerkte, dass die Segel laden Sie eine beliebige Datei im config/server bootstrap-so meine hacky Lösung für jetzt, um das setup Folgendes:
config/
|-- local.js
|-- environment/
|---- production.js
|---- staging.js
|---- development.js
|---- testing.js
Dann in jedem {env}.js-Datei, die ich gerade erweitern config so:
if (process.env.NODE_ENV === 'production') {
//Enter any environment specific config changes
config.db = {
db_host: foo,
db_port: bar
}
config.otherThing = {
somevar: 'someval'
}
InformationsquelleAutor Jason Sims | 2014-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Segel 0.10-rc6 wurde dies verbessert und man kann jetzt hinzufügen, ein
env
Unterordner inconfig
zum ändern der Einstellungen für verschiedene Umgebungen.So könnte man einfach eine Datei hinzufügen
/config/env/development.js
oder/config/env/production.js
können, überschreiben Sie alle notwendigen EinstellungenSehen https://github.com/balderdashy/sails/pull/1638 für mehr details.
Beispiel den port ändern und Datenbank-adapter, z.B. für
production
Umfeld, in Ihremproduction.js
:Diese Antwort erklärt nicht, wie die oben genannten spielt mit local.js und NODE_ENV.
Sieht aus wie Segel lädt in
config/env/<NODE_ENV>.js
.Wollen einfach nur, um zu bestätigen, dass dies der Fall für Segel v0.11
InformationsquelleAutor Markus
Gehen Sie einfach auf config/env/production.js & set port und Umgebung, manuell
Und verwenden NODE_ENV
Für Windows verwenden
set NODE_ENV=production
Für MAC/Linux verwenden
export NODE_ENV=production
ODER
Segel heben --prod
Vielen Dank für Lesen, diesen Mann.
InformationsquelleAutor Nishchit Dhanani
Ich Tat dies, indem Sie
config/local.js
erfordern zusätzliche config-Dateien je nachprocess.env.NODE_ENV
.In
config/local.js
In
.gitignore
:Dies gibt Ihnen:
env
indem Sie Sie inconfig/environments/{env}.js
sails.config{env}
halten Ihre Umgebung spezifische Konfiguration, genau wie deine Lösung funktioniert{env}
Dateien{env}
Dateienlogger
undlodash
, aber Sie würde erfordernfs
).Hey, aktualisiert die Antwort zu reflektieren, die Abhängigkeiten.
logger
sollte injiziert werden, in den globalen Gültigkeitsbereich durch Segel (in v0.10).Oh, guten Ruf! Eine andere Sache, die möglicherweise nicht offensichtlich sein—ich hatte zu ändern
require(envConfigPath)
zuvar environment = require(envConfigPath)
, obwohl diese übernimmt Sie die Einrichtung der env-Dateien wie dieses:module.exports = { env: 'production', port: 80 };
Autsch. Sie sind völlig richtig - Ihre fix ist, was ich eigentlich in meiner Quelle. Muss gelöscht haben, versehentlich, wenn die Formatierung SO. Aufhören sollte, Fragen zu beantworten, die nach 2 Uhr morgens, aber Trotzdem - schön, dass Sie wie der Ansatz.
Ich musste leicht ändern Sie diesen code, um es arbeiten mit dem neuesten Segel 0.10-rc9. Hinzufügen/ändern
_ = require('lodash'); CaptainsLog = require('captains-log');
am Anfang des Abschnitts und dann rechts nachmodule.exports
ich Hinzugefügtvar log = CaptainsLog();
. Scheint zu funktionieren nun perfekt.InformationsquelleAutor marionebl