2017-06-04 2 views
0

Ich habe eine Javascript-Klasse, die im Browser und NodeJS verwendet werden kann.Zeige nur Logging-Informationen im Dev-Modus in NodeJS/Browser

Angenommen, die Klasse wie diese Abbildung kann ich

class BarFoo { 
    lookup() { 
     // Do magic 
     if (magicFailed && window.DEVELOP) { 
      console.log('Show some info to help debugging...'); 
     } 
    } 
    ... 
} 

Um dieses Beispiel zu machen auch für NodeJS arbeiten

sieht, dass die global In diesem Beispiel zeige ich nur die Log-Nachricht, wenn die App im Entwicklungsmodus ( window.DEVELOP === true). Aber ich möchte diese Klasse auch in einer nodeJS-App verwenden, also habe ich kein window Objekt. Was ist der bevorzugte Weg, dies für beide einzurichten?

Antwort

1

Man könnte es wie folgt tun:

Starten Sie Ihre App mit:

NODE_ENV=development node app.js 

Dann ist es prüfen, wie so:

const isServer = typeof window === 'undefined' 
const isDev = isServer ? process.env.NODE_ENV === 'development' : window.DEVELOP 

if (isDev) { 
    // ... 
}