MyException - 我的反常网
当时方位:我的反常网» Web前端 » 通道口之webpackJsonpCallback

通道口之webpackJsonpCallback

www.x8vin4.com  网友共享于:2018-06-08  阅读:0次
进口之webpackJsonpCallback

每个chunk的进口函数,基本上做了三件事,比方针对app.js

webpackJsonpCallback([0,1], {
  2: function(){}, 
  3:function(){}
}, [2]);

 1.chunk1有或许依靠chunk0,要先履行chunk0,也有或许chunk0现已履行过了,所以需求判别

 2.将module = 2/3 的界说保存在modules目标中

 3.履行module = 2的模块的代码,注入三个参数

 

关于第一点阐明:

在经过require.ensure加载的时分,的确有或许0正在加载中,而且chunk0下边挂在了许多callback,需求在chunk0 resolve的时分去履行,尔后才干履行chunk1的代码逻辑,所以增加判别,而且手动履行时必要的

我也没见过场景。。。

 

/******/ 	var parentJsonpFunction = window["webpackJsonp"];
/******/ 	window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [], result;
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId])
/******/ // 此处installedChunkds[chunkId] = [resolve, reject, promise],
         // 在__webpack_require__.e函数界说的
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);
/******/ 		while(resolves.length)
/******/ 			resolves.shift()();
/******/ 		if(executeModules) {
/******/ 			for(i=0; i < executeModules.length; i++) {
/******/ 				result = __webpack_require__(__webpack_require__.s = executeModules[i]);
/******/ 			}
/******/ 		}
/******/ 		return result;
/******/ 	};

 

ds

 

文章谈论

软件开发程序过错反常ExceptionCopyright © 2009-2015 MyException 版权所有