webpack5打包生成文件分析(commonjs和es6模块系统)

相关配置

  • webpack5
// webpack.config.js
module.exports = {
   
  mode: 'none'
}
// index.js
import str from "./main.js";
console.log(str);
// main.js
export default "hello leo~";
  • 生成文件(去掉了注释)
(() => {
   
  "use strict";
  var __webpack_modules__ = ([
    ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
   
      __webpack_require__.r(__webpack_exports__);
      var _main_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
      console.log(_main_js__WEBPACK_IMPORTED_MODULE_0__.default);
    }),
    ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
   
      __webpack_require__.r(__webpack_exports__);
      __webpack_require__.d(__webpack_exports__, {
   
        "default": () => __WEBPACK_DEFAULT_EXPORT__
      });
      const __WEBPACK_DEFAULT_EXPORT__ = ("hello leo~");
    })
  ]);
  var __webpack_module_cache__ = {
   };

  function __webpack_require__(moduleId) {
   
    if (__webpack_module_cache__[moduleId]) {
   
      return __webpack_module_cache__[moduleId].exports;
    }
    var module = __webpack_module_cache__[moduleId] = {
   
      exports: {
   }
    };

    __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
    console.log(module.exports, moduleId) // 测试代码
    return module.exports;
  }
  (() => {
   
    __webpack_require__.d = (exports, definition) => {
   
      for (var key in definition) {
   
        if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
   
          Object.defineProperty(exports, key, {
    enumerable: true, get: definition[key] });
        }
      }
    };
  })();

  (() => {
   
    __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)
  })();

  (() 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值