2013-07-31 21 views
9

Ich habe den folgenden Modul-Export in meiner Javascript-Datei, so dass ich es von node.js basierten Build-Setup zugreifen kann (grunt, erfordern ..).Wie zu vermeiden, Uncaught ReferenceError

.... 
if(module && module.exports) { 
     module.exports = m; 
    } 

, wenn ich die gleiche Datei in Browser verwenden, gibt es Fehler

Uncaught ReferenceError: module is not defined const.js:49 
(anonymous function) 

I nicht Verwendung Knoten als Backend tun. Wie kann ich diesen Fehler vermeiden? Das heißt, ich muss m exportieren, so dass require es während des Builds (knotenbasiert), aber eigenständig im Browser funktioniert.

Warum behandelt der Browser das variable Modul nicht als undefiniert und wirft keinen Fehler?

Danke.

Antwort

23

-Test typeof module !== "undefined" statt module

warum der Browser nicht die variable Modul als undefiniert behandeln und keinen Fehler werfen?

Da sowie undefiniert, es ist auch nicht angemeldete . Dies ist eine hervorragende Funktion, um einen Fehler zu erzeugen, wenn Sie einen Tippfehler in einem Variablennamen eingeben. Zum Beispiel ist es besser für den folgenden Fehler, anstatt als falsch behandelt:

var loose = true; 
if (lose) { 
} 
+0

+1 danke .. wird in Kürze akzeptiert. – bsr

Verwandte Themen