2015-05-16 9 views
5

Ich möchte einige gemeinsame Code als CommonJS-Module zu bündeln, und dann diese gemeinsamen Module aus einem anderen Bundle und/oder direkt von global.mehrere Bundles mit browserify, mit Modulen extern

entry1-common.js 
-- a.js 
-- b.js 

entry2-app.js 
-- x.js 
    inside i would like to to access entry1-common's a.js here 
    var moduleA = require('./a.js'); 

<script> 
    // i would also like to access modules from outside 
    var moduleA = require('./a.js'); 
    var moduleX = require('./x.js'); 
</script> 

Ich benutze Schluck. Einige browserify Optionen, die zu sein scheinen, was ich brauche, aber nicht ganz mir der Weg:

browserify(bundleConfigs: [{ 
    entries: './entry1-common.js', 
    dest: dest, 
    outputName: 'common.js', 
    hasExports: true, // this gives me require() function on the outside 
    require: ['jquery'] 
}]) 

Muss ich bündeln müssen ‚durch‘ und ‚Duplexer‘? Ich habe Beispiele davon in browserify-Dokumenten gesehen.

Ich kann zwei separate Bundles in meinem Schluck-Task erstellen, aber ich weiß nicht, wie man auf Module von einem zum anderen zugreift.

+0

Werfen Sie einen Blick auf diese Antwort: http://StackOverflow.com/a/30294762/2943490 – user2943490

Antwort

1

Lesen über Webpack, ich sehe, wo sie so viele Fragen einschließlich der oben genannten lösen. Sie können alles systematisch externalisieren, wie in der Dokumentation des Webpacks gezeigt. Snippet unten:

externals: [ 
    { 
     a: false, // a is not external 
     b: true, // b is external (require("b")) 
     "./c": "c", // "./c" is external (require("c")) 
     "./d": "var d" // "./d" is external (d) 
    }, 
    // Every non-relative module is external 
    // abc -> require("abc") 
    /^[a-z\-0-9]+$/, 
    function(context, request, callback) { 
     // Every module prefixed with "global-" becomes external 
     // "global-abc" -> abc 
     if(/^global-/.test(request)) 
     return callback(null, "var " + request.substr(7)); 
     callback(); 
    }, 
    "./e" // "./e" is external (require("./e")) 
    ]