2013-07-31 20 views
9

私は以下のモジュールをjavascriptファイルにエクスポートしていますので、node.jsからセットアップにアクセスできます(grunt、require ..)。避ける方法Uncaught ReferenceError

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

私はブラウザで同じファイルを使用する場合、それは私がバックエンドとしてではない使用ノードを行うエラーに

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

を与えます。 このエラーを回避するにはどうすればよいですか?つまり、mをエクスポートして、構築中(ノードベース)にrequireにする必要がありますが、ブラウザではスタンドアロンで動作します。

なぜブラウザは変数モジュールを未定義として扱い、エラーをスローしませんか?

ありがとうございました。

答えて

23

テストtypeof module !== "undefined"代わり

なぜブラウザは、未定義の変数としてモジュールを扱わないし、エラーをスローしませんmoduleの?

は未定義のため、です。これは、変数名にタイプミスをしたときにエラーをスローする優れた機能です。たとえば、次のようなエラーはfalseとして扱われる代わりにエラーになる方が良いです。

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

+1ありがとうございます。 – bsr

関連する問題