为什么Webpack使用jsonp获取块脚本

mjk*_*kim 6 jsonp webpack

我认为没有CORS问题。

为什么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__);

/******/    };
Run Code Online (Sandbox Code Playgroud)

Tha*_*ran 1

我的想法是,

无论 webpack 使用JSON或JSONP,它都必须将加载的块文件附加到文档中。

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

这里对 JSON 和 JSONP有很好的解释

  • 哇啊啊啊啊啊啊 (3认同)