Webpack工程化笔记(七): 模块打包原理

2022-02-20  本文已影响0人  听书先生

对于项目工程中非常多的模块,Webpack打包时是通过什么方式将其有序组织在一起的呢?

模块:
// getInfo.js
module.exports = {
    getSum: function(num1, num2) {
        return num1 + num2;
    }
}

// index.js
const getInfo = require('./getInfo.js');
const sum = getInfo.getSum(2,3);

console.log(sum);

bundle.js打包后的结果文件代码:

// 立即执行匿名函数
(function() {
  // 模块缓存
  var installedModules = {};
  // 实现require
  function __webpack_require__(moduleId) {
    ...
  }
  // 执行入口模块的加载
  return __webpack_require__(__webpack_require__.s = 0);
})({
  // modules: 以key-value的形式储存所有被打包的模块
  0: function(module, exports, __webpack_require__) {
     // 打包入口
    module.exports = __webpack_require__("3qiv");
  },  
  "3qiv": function() {
    // index.js内容
  },
  jkzz: function(module, exports) {
    // getInfo.js的内容
  }

})

打包后的bundle文件在浏览器中的执行过程:

·

上一篇下一篇

猜你喜欢

热点阅读