2016-03-23 7 views
1

altında birden ithalatı var.

window.utils = ... 

Yani utils.aFunction() kullanabilirsiniz;:

Yani sonunda ben gibi bir şey istiyorum

Ben de bir örnek olarak, bu benim proje olacağını, birkaç dosya benim bağımlılıkları bölmek istiyorum: libs/math.js yılında

:

libs 
    |_ math.js //Implements randomInt and RandomFloat methods 
    |_ connection.js //Implements isConnected method 
utils.js //Calls all the required dependencies 

Benim fikrim şu ana kadar böyle bir şey olmasıdır:

module.exports = { 
    randInt: function() { 
     return 4; 
    }, 
    randFloat: function() { 
     return 4.1; 
    } 
}; 

sonra utils.js yapacağını:

var math = require('./libs/math'); 
var connection = require('./libs/connection'); 

var libs = [math, connection]; 

var utils = {}; 

for (var i = 0; i < libs.length; i++) { 
    for (var key in libs[i]) { 
     utils[key] = libs[i][key]; 
    } 
} 

window.utils = utils; 

Bu aslında gayet güzel çalışıyor, ama zaten bir kütüphane çözülmüyordu eğer bilmiyorum.

ne browserify ile önerilen yaklaşım olacaktır, bunu yapmanın daha verimli yollar vardır bir his var? util nesnesine şeyler atmaya yönelik

cevap

0

kod görünümlü kesinlikle tuhaf olduğunu ve bunun üzerinde döngü tavsiye etmem tüm senin submodules util gerekli.

var libs = [math, connection]; 

var utils = {}; 

for (var i = 0; i < libs.length; i++) { 
    for (var key in libs[i]) { 
    utils[key] = libs[i][key]; 
    } 
} 

sen webpack/browserify ile ortak js yaklaşımla olsaydı, sadece yapılandırma dosyasında küresel olmak için util ilan edeceğini ve içerdeki util.js

basitçe gerekli module.exports eklemek
//connect.js 
    module.exports = { 
    isConnected: function(){ 
     return true; 
    } 
}; 
//math.js 
module.exports = { 
    randInt: function() { 
     return 4; 
    }, 
    randFloat: function() { 
     return 4.1; 
    } 
}; 
//utils.js 
exports.math = require('./math'); 
exports.connect = require('./connect'); 
//test.js 
var utils = require('./utils'); 
console.log(utils.math.randInt()); 
console.log(utils.connect.isConnected());