在webpack上,webpackJsonp()函数可接受的参数是什么,它有什么作用?

时间:2018-07-16 18:55:16

标签: javascript webpack module

我在GitHub回购源中尝试过searching的功能,但是由于某种原因,我找不到webpackJsonp()函数的定义。

我知道我可以使用webpackJsonp([], null, ["moduleId"])来通过id返回一个模块,但是我想知道这个函数实际上是做什么的,并学到了我可以做的一切。

编辑:我还想了解__webpack_require__.c__webpack_require__.m(在代码here中找到了一些注释)。

1 个答案:

答案 0 :(得分:0)

根据Petr的评论,似乎该函数通常是用以下代码生成的:

  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]) {
        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;
  };

3个参数名称和源代码上的注释非常有见地。