博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cordova 源码分析记录
阅读量:6160 次
发布时间:2019-06-21

本文共 1874 字,大约阅读时间需要 6 分钟。

1.模块定义

(function () {    var modules = {};    // Stack of moduleIds currently being built.    var requireStack = [];    // Map of module ID -> index into requireStack of modules currently being built.    var inProgressModules = {};    var SEPARATOR = '.';    function build (module) {        var factory = module.factory;        var localRequire = function (id) {            var resultantId = id;            // Its a relative path, so lop off the last portion and add the id (minus "./")            if (id.charAt(0) === '.') {                resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2);            }            return require(resultantId);        };        module.exports = {};        delete module.factory;        factory(localRequire, module.exports, module);        return module.exports;    }    require = function (id) {        if (!modules[id]) {            throw 'module ' + id + ' not found';        } else if (id in inProgressModules) {            var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id;            throw 'Cycle in require graph: ' + cycle;        }        if (modules[id].factory) {            try {                inProgressModules[id] = requireStack.length;                requireStack.push(id);                return build(modules[id]);            } finally {                delete inProgressModules[id];                requireStack.pop();            }        }        return modules[id].exports;    };    define = function (id, factory) {        if (modules[id]) {            throw 'module ' + id + ' already defined';        }        modules[id] = {            id: id,            factory: factory        };    };    define.remove = function (id) {        delete modules[id];    };    define.moduleMap = modules;})();

  

转载于:https://www.cnblogs.com/tongbiao/p/10087429.html

你可能感兴趣的文章
JQuery:deferred对象的方法
查看>>
eyoucms问答 百度权重是什么
查看>>
win10中遇到qq视频时摄像头打不开没反应的解决方法
查看>>
介绍自己的一个Android插桩热修复框架项目QuickPatch
查看>>
关于textarea的ie9的maxlength不起作用的问题,请参考如下URL解决。
查看>>
Solr Facet 查询
查看>>
C++类的继承一
查看>>
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案...
查看>>
巧用VMware Workstation的clone来制作虚拟机模板
查看>>
Spring-Mybatis MapperScannerConfigurer 取不到PropertyPlaceholderConfigurer里的值
查看>>
HP DL380G4服务器前面板指示灯的含义
查看>>
数据结构_树结构
查看>>
常用URL地址
查看>>
每天一个linux命令(19):find 命令概览
查看>>
MySQL kill操作
查看>>
windows下看端口占用
查看>>
Decommissioning a Domain Controller 降域控
查看>>
Character中的奇葩
查看>>
c++书籍推荐
查看>>
轻松监听Azure service health 状态
查看>>