可能就是好奇心略重了,读了一下webpack打包后的bundle.js的代码,复杂的模块可能读不懂,但简单的hello world模块我还是能看懂的。没什么目的,就是想通过几个简单的模块,一条简单的webpack命令,一个神奇的bundle.js代码来了解webpack是怎么把遵循commonJs规范的模块应用到浏览器端的。

几个简单的模块:
解读webpack的bundle.js

一条简单的webpack命令:
解读webpack的bundle.js

一个神奇的bundle.js:

 1 /******/ (function(modules) { // webpackBootstrap
 2 /******/     // The module cache
 3 /******/     var installedModules = {};
 4 
 5 /******/     // The require function
 6 /******/     function __webpack_require__(moduleId) {
 7 
 8 /******/         // Check if module is in cache
 9 /******/         if(installedModules[moduleId])
10 /******/             return installedModules[moduleId].exports;
11 
12 /******/         // Create a new module (and put it into the cache)
13 /******/         var module = installedModules[moduleId] = {
14 /******/             exports: {},
15 /******/             id: moduleId,
16 /******/             loaded: false
17 /******/         };
18 
19 /******/         // Execute the module function
20 /******/         modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21 
22 /******/         // Flag the module as loaded
23 /******/         module.loaded = true;
24 
25 /******/         // Return the exports of the module
26 /******/         return module.exports;
27 /******/     }
28 
29 
30 /******/     // expose the modules object (__webpack_modules__)
31 /******/     __webpack_require__.m = modules;
32 
33 /******/     // expose the module cache
34 /******/     __webpack_require__.c = installedModules;
35 
36 /******/     // __webpack_public_path__
37 /******/     __webpack_require__.p = "";
38 
39 /******/     // Load entry module and return exports
40 /******/     return __webpack_require__(0);
41 /******/ })
42 /************************************************************************/
43 /******/ ([
44 /* 0 */
45 /***/ function(module, exports, __webpack_require__) {
46 
47     /*
48       打印文本的index模块
49      */
50     var text = __webpack_require__(1);
51     console.log(text);
52 
53 /***/ },
54 /* 1 */
55 /***/ function(module, exports) {
56 
57     /*
58       生成文本的Hello world模块
59      */
60     module.exports = 'Hello world!';
61 
62 /***/ }
63 /******/ ]);
View Code

相关文章:

  • 2022-12-23
  • 2021-10-25
  • 2021-12-17
  • 2022-12-23
  • 2022-12-23
  • 2021-06-10
  • 2022-12-23
  • 2021-06-27
猜你喜欢
  • 2021-10-09
  • 2022-12-23
  • 2021-04-05
  • 2021-04-23
  • 2022-02-03
  • 2021-06-21
  • 2021-12-02
相关资源
相似解决方案