2016-03-23 28 views
1

Ich möchte meine Projekt-Importe mit browserify organisieren, so dass ich eine globale utils-Variable habe, von der ich Funktionen wie jQuery $ aufrufen und ausführen kann.Wie mehrere Importe unter einer Variablen haben

Also am Ende möchte ich so etwas wie:

window.utils = ... 

So kann ich utils.aFunction();

Ich möchte auch meine Abhängigkeiten in mehreren Dateien teilen, als ein Beispiel, wäre dies mein Projekt sein:

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

Meine Idee so weit ist, so etwas zu haben:

In libs/math.js:

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

Und dann würde ich in utils.js tun:

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; 

Das funktioniert eigentlich gut, aber ich weiß nicht, ob es nicht bereits von einer Bibliothek gelöst wurde.

Ich habe das Gefühl, es gibt effizientere Möglichkeiten, dies zu tun, was wäre der empfohlene Ansatz mit Browserify?

Antwort

0

Der Code zum Werfen Dinge in util-Objekt ist auf jeden Fall seltsam aussehen, und ich würde nicht empfehlen, diese Schleife über alle benötigten Util-Module.

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]; 
    } 
} 

Wenn Sie mit webpack/browserify einen gemeinsamen js Ansatz, würden Sie einfach Ihre util erklären in der Konfigurationsdatei zu sein, global, und fügen Sie einfach die benötigten module.exports innerhalb Ihrer util.js

//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()); 
Verwandte Themen