simple demo
// add.js
const add = (a, b) => {
return a + b;
};
export default add;
// index.js
import add from "./add";
console.log("sum", add(1, 3));
output
(() => {
// 运用的模块列表,当成一个map存起来,一是缓存,而是把执行结果给export
var __webpack_modules__ = {
"./src/add.js": (
__unused_webpack_module, //模块信心,id,isload,export
__webpack_exports__, //把执行结果复制给exports这个变量
__webpack_require__ // 模块里面可以继续引用其他模块
) => {
// 1. 把这个标示为es模块 {esmodule: true}
__webpack_require__.r(__webpack_exports__);
// 2: define 给这个export负值 export = {default: add, esmodule: true}
__webpack_require__.d(__webpack_exports__, {
default: () => __WEBPACK_DEFAULT_EXPORT__,
});
const add = (a, b) => {
console.log("kkkk");
return a + b;
};
const __WEBPACK_DEFAULT_EXPORT__ = add;
},
};
// 一个模块只需要执行一次就可以得到export,所以做个缓存
var __webpack_module_cache__ = {};
// 核心功能
function __webpack_require__(moduleId) {
// Check if module is in cache
var cachedModule = __webpack_module_cache__[moduleId];
if (cachedModule !== undefined) {
return cachedModule.exports;
}
// Create a new module (and put it into the cache)
var module = (__webpack_module_cache__[moduleId] = {
// no module.id needed
// no module.loaded needed
exports: {},
});
// 执行模块,得到exports
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
// Return the exports of the module
return module.exports;
}
/* webpack/runtime/define property getters */
(() => {
// define getter functions for harmony 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/runtime/hasOwnProperty shorthand */
(() => {
__webpack_require__.o = (obj, prop) =>
Object.prototype.hasOwnProperty.call(obj, prop);
})();
/* webpack/runtime/make namespace object */
(() => {
// define __esModule on exports
__webpack_require__.r = (exports) => {
if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
}
Object.defineProperty(exports, "__esModule", { value: true });
};
})();
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
(() => {
__webpack_require__.r(__webpack_exports__);
var _add__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/add.js");
console.log("sum", (0, _add__WEBPACK_IMPORTED_MODULE_0__.default)(1, 3));
})();
})();
网友评论