2016-11-23 101 views
2

我不认为存在CORS问题。为什么webpack使用jsonp获取块脚本

为什么webpack使用jsonp来获取块脚本?

这是生成的webpackBootstrap。

/******/ // install a JSONP callback for chunk loading 
/******/ var parentJsonpFunction = window["webpackJsonp"]; 
/******/ window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules) { 
/******/  // add "moreModules" to the modules object, 
/******/  // then flag all "chunkIds" as loaded and fire callback 
/******/  var moduleId, chunkId, i = 0, callbacks = []; 
/******/  for(;i < chunkIds.length; i++) { 
/******/   chunkId = chunkIds[i]; 
/******/   if(installedChunks[chunkId]) 
/******/    callbacks.push.apply(callbacks, installedChunks[chunkId]); 
/******/   installedChunks[chunkId] = 0; 
/******/  } 
/******/  for(moduleId in moreModules) { 
/******/   modules[moduleId] = moreModules[moduleId]; 
/******/  } 
/******/  if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules); 
/******/  while(callbacks.length) 
/******/   callbacks.shift().call(null, __webpack_require__); 

/******/ }; 

回答

1

这里我的想法是,

无论使用的WebPack或JSONJSONP,它必须加载块文件添加到文档中。

因此,webpack团队可能会首先获取脚本文件(JSON),然后附加文档,首先追加脚本标记(JSONP),然后让脚本标记加载文件。

尼斯解释here on JSON and JSONP

相关问题