2016-08-01 4 views
0

私はこのようなコードに何か持っている:requireを呼び出す前にすべてのモジュールをbrowserifyでロードするのはなぜですか?

console.log("a is loaded"); 
module.exports = function(){ 
    console.log("a is running") 
}; 

b.js

console.log("b is loaded"); 
module.exports = function(){ 
    console.log("b is running") 
}; 
a.js

index.js

var x, a = 1; 

if (a) 
    x = require("./a"); 
else 
    x = require("./b"); 

module.exports = x(); 

は、ノードによって私は

a is loaded 
a is running 

を得たが、カルマ+ browserifyで私は、コンソールで

a is loaded 
b is loaded 
a is running 

を得ました。

bをブラウザからロードするのを防ぐ方法はありますか?

答えて

1

私が間違っていれば私を修正してください。しかし、ブラウザで作業する方法は、必要なすべてのJSファイルが必要で、ブラウザで使用できるようにすべてのJSを1つ作成することです。コンパイル時にどのソースを使用する必要があるのか​​判断できないため、すべてをロードする必要があります。

例えば、RequireJSのような代替スクリプトローダーを試すことができます。

+1

いいえ、そうではありません。実行しない関数にコードbを簡単に入れることができるので、 'console.log(" b "がロードされる)'は決して実行されません。どうやら、それをしない、またはそれを正しくしていない。 – inf3rno

関連する問題