Sha256: a3d3e5409690bbb2e1b592fb34e18684019f6f61797f58437c356bc1470bd524

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

var browserify = require('../');
var vm = require('vm');
var test = require('tap').test;

test('multi bundle', function (t) {
    t.plan(5);

    var core = browserify();
    core.require(__dirname + '/multi_bundle/b.js', { expose: true });

    var app = browserify([__dirname + '/multi_bundle/a.js']);
    // inform this bundle that b exists in another bundle
    app.external(__dirname + '/multi_bundle/b.js');

    core.bundle(function (err, src) {
        var c = {
            console: console,
            t : t,
            baton: {
                times: 0
            }
        };

        // loading core will cause no require to run
        vm.runInNewContext(src, c);
        t.equal(c.baton.times, 0);

        // loading the app will require
        app.bundle(function (err, src) {
            vm.runInNewContext(src, c);

            // b required for the first time
            t.equal(c.baton.times, 1);

            // running the file again
            // because it is using the same b, no reloading
            vm.runInNewContext(src, c);

            // b should not have been required again
            // because it was part of the core bundle
            t.equal(c.baton.times, 1);
        });
    });
});

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
sprockets-browserify-0.2.0 node_modules/browserify/test/multi_bundle.js
ruby-wisp-source-0.8.0 vendor/node_modules/browserify/test/multi_bundle.js
ruby-wisp-source-0.7.0 vendor/node_modules/browserify/test/multi_bundle.js