1 | var browserify = require('../');
|
2 | var vm = require('vm');
|
3 | var fs = require('fs');
|
4 | var path = require('path');
|
5 | var test = require('tap').test;
|
6 | var prelude = fs.readFileSync(path.join(__dirname, 'multi_bundle', '_prelude.js'), 'utf8');
|
7 |
|
8 | test('unique require', function (t) {
|
9 | t.plan(6);
|
10 |
|
11 | var core = browserify({
|
12 | externalRequireName: 'unique_require',
|
13 | prelude: prelude
|
14 | });
|
15 | core.require(__dirname + '/multi_bundle/b.js', { expose: './b' });
|
16 |
|
17 | var app = browserify(
|
18 | [__dirname + '/multi_bundle/a.js'],
|
19 | { prelude: prelude }
|
20 | );
|
21 |
|
22 | app.external('./b');
|
23 |
|
24 | core.bundle(function (err, src) {
|
25 | var c = {
|
26 | console: console,
|
27 | t : t,
|
28 | baton: {
|
29 | times: 0
|
30 | }
|
31 | };
|
32 |
|
33 |
|
34 | vm.runInNewContext(src, c);
|
35 | t.equal(c.baton.times, 0);
|
36 |
|
37 |
|
38 | app.bundle(function (err, src) {
|
39 | vm.runInNewContext(src, c);
|
40 |
|
41 |
|
42 | t.equal(c.baton.times, 1);
|
43 |
|
44 |
|
45 |
|
46 | vm.runInNewContext(src, c);
|
47 |
|
48 |
|
49 |
|
50 | t.equal(c.baton.times, 1);
|
51 |
|
52 | t.equal(c.unique_require('./b'), 'foo');
|
53 | });
|
54 | });
|
55 | });
|
56 |
|