2016-07-29 11 views
1

Ich entwickle eine Redux/ReactJS-Anwendung und ich habe eine Liste von Anwendungseinstellungen.Position der statischen Anwendung Einstellungen

Ich versuche zu entscheiden, ob ich sie im Laden haben sollte oder ob ich eine Datei erstellen sollte, die die Einstellungen enthält, und sie dort importiere, wo ich sie brauche.

+0

Willkommen bei Stack Overflow! Ich habe deine Frage soweit bearbeitet, wie ich dein Problem erraten konnte. Fügen Sie jedoch Code und Beschreibung hinzu, damit mehr Personen mit Wissen über das Thema sie sehen können. Bitte editieren Sie in der spezifischen Fehlermeldung, die Sie antreffen, falls es notwendig ist, das spezifische Problem zu identifizieren. Viel Glück! – manetsus

Antwort

0

Es ist auf die Art der ‚Anwendungseinstellungen‘ abhängt.

Für die sicheren Dinge

wie API-Schlüssel usw. Verwenden von Umgebungsvariablen. Sie können etwas wie dotenv verwenden, um die Simulation anderer Umgebungen zu vereinfachen.

Für Konstanten

wie Strings und Farben und externe URLs, verwende ich eine Konstanten mit mehrere export Datei. Dann in jedem Modul importieren ich alles, was ich brauche, etwa so:

import { 
    ANIMATION_DURATION, 
    COLORS, 
    MODALS, 
    TEXT_PADDING, 
} from '../../constants.js'; 

Für umgebungsspezifische Dinge (zB Entwickler, prod ...)

Zum Beispiel API-URLs oder Ebenen einzuloggen, usw. verwenden ein Set von Konfigurationsdateien. So haben Sie möglicherweise eine config-dev.js und config-prod.js und dann eine config.js, die den korrekten Inhalt der Datei basierend auf process.env.NODE_ENV

0

Anwendungseinstellungen sollten nur eine Konstante in einer Datei sein. Auf diese Weise können die Einstellungen für verschiedene Konfigurationen umgeschaltet werden.

Ein Beispiel für Einstellungsdatei könnte sein:

let apiUrl = 'http://prodUrl'; 

// __DEV__ defaults to true in simulator. 
if (__DEV__) { 
    apiUrl = 'http://devUrl'; 
} 

export const settings = { 
    apiUrl, 
    registerUrl: `${apiUrl}/api/register`, 
    educationUrl: `${apiUrl}/api/education`, 
};