告诉Browserify公开模块deps

时间:2014-04-10 08:37:15

标签: javascript node.js browserify

有没有办法将模块的内部依赖关系公开给全局require

我的意思是我有index.js这样:

var dep = require('./dep.js');
console.log(dep);

我已经通过它的API将它添加到Browserify捆绑包中:

var b = browserify();
b.add('path/to/module');
b.bundle().pipe(process.stdout);

那么我怎样才能在结果包文件之外得到require('./dep.js')

我说的是Browserify的Node.js API,而不是CLI。

2 个答案:

答案 0 :(得分:0)

我不确定这是不是你问的问题,但是:

var browserify = require('browserify');

var b = browserify();
var deps = [];
b.add('path/to/module');
// pull array out of stream:
b.deps().on('data', function(data){deps.push(data);})
    .on('end',function(){
        deps.forEach(function(item)
        {
            //item.id will be the file name
            console.log(item);
        });
    } );

如果您只是想要require依赖项,那么browserify将在内部使用module-deps,它位于github here或npm上。

答案 1 :(得分:0)

怎么样

// index.js
var dep = require('./dep.js');
console.log(dep);

//========================

// your browserify script
var b = browserify();
b.add('./path/to/index.js');

// expose the module to global require as 'deps'
b.require('./path/to/deps.js', { expose: 'deps' });

b.bundle().pipe(process.stdout);

这应该使deps.js模块在​​包外的可用deps

因此,在开发人员工具控制台中执行此操作将使您可以访问模块

require('deps'); // will require the deps.js module