Browserify bundle.js揭秘

时间:2014-10-23 22:43:18

标签: browserify

因此,当我们浏览模块时,它会吐出这个神秘的功能:

(function e(t,n,r){
function s(o,u){
    if(!n[o]){
        if(!t[o]){
            var a=typeof require=="function"&&require;
            if(!u&&a)return a(o,!0);
            if(i)return i(o,!0);
            var f=new Error("Cannot find module '"+o+"'");
            throw f.code="MODULE_NOT_FOUND",f
        }
        var l=n[o]={exports:{}};
        t[o][0].call(l.exports,function(e){
             var n=t[o][1][e];
             return s(n?n:e)
        },l,l.exports,e,t,n,r)
    }
        return n[o].exports
}
var i=typeof require=="function"&&require;
for(var o=0;o<r.length;o++)s(r[o]);
return s
})({
1:[function(require,module,exports){....

现在我一直在寻找一个来源,解释或一个有可读变量但无法找到它的人。

例如:

 var a=typeof require=="function"&&require;

似乎在这里创建了require()函数,这是如何定义它的?

这主要是这些变量不可读的事实,我假设以下是错误的吗?

(function e(require,module,exports){
function s(o,u){
    if(!module[o]){
        if(!require[o]){
            var a=typeof require=="function"&&require;
            if(!u&&a)return a(o,!0);
            if(i)return i(o,!0);
            var f=new Error("Cannot find module '"+o+"'");
            throw f.code="MODULE_NOT_FOUND",f
        }
        var l=module[o]={exports:{}};
        require[o][0].call(l.exports,function(e){
            var module = require[o][1][e];
            return s(module ? module : e)
        },l , l.exports, e, require, module, exports)
    }
        return module[o].exports
}
var i=typeof require=="function"&&require;
for(var o=0; o<exports.length; o++) s(exports[o]);
return s
})({
1:[function(require,module,exports){...

但是仍然留下s(o,u),它带有2个参数,但是唯一一次调用它,只得到1个参数..

},l , l.exports, e, require, module, exports)

这属于哪个?

任何人都可以帮助填补空白吗?

1 个答案:

答案 0 :(得分:2)

停止查看,这里是注释的源文件;)

https://github.com/substack/browser-pack/blob/master/prelude.js