Skip to content

Instantly share code, notes, and snippets.

@yiyizym
Last active July 14, 2020 08:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yiyizym/24215345c0d1ce082f370a7918fe0a3c to your computer and use it in GitHub Desktop.
Save yiyizym/24215345c0d1ce082f370a7918fe0a3c to your computer and use it in GitHub Desktop.
webpack modules output
// es6 modules 打包结果大体一样,细节不同
// app.js(entry)
var c = require('./c')
console.log(c)
module.exports = {
a: '我是a'
}
// c.js
let c1 = 'c1'
let c2 = 'c2'
module.exports = {
c1,
c2,
}
// 打包结果(提取了 factory 出来):
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["app"] = factory();
else
root["app"] = factory();
})(typeof self !== 'undefined' ? self : this, factory);
// factory 详情:
function factory() {
return (function (modules) { // webpackBootstrap
// The module cache
var installedModules = {};
// The require function
function __webpack_require__(moduleId) {
// Check if module is in cache
if (installedModules[moduleId]) {
return installedModules[moduleId].exports;
}
// Create a new module (and put it into the cache)
var module = installedModules[moduleId] = {
i: moduleId,
l: false,
exports: {}
};
// Execute the module function
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
// Flag the module as loaded
module.l = true;
// Return the exports of the module
return module.exports;
}
// expose the modules object (__webpack_modules__)
__webpack_require__.m = modules;
// expose the module cache
__webpack_require__.c = installedModules;
// define getter function for harmony exports
__webpack_require__.d = function (exports, name, getter) {
if (!__webpack_require__.o(exports, name)) {
Object.defineProperty(exports, name, {
configurable: false,
enumerable: true,
get: getter
});
}
};
// getDefaultExport function for compatibility with non-harmony modules
__webpack_require__.n = function (module) {
var getter = module && module.__esModule ?
function getDefault() { return module['default']; } :
function getModuleExports() { return module; };
__webpack_require__.d(getter, 'a', getter);
return getter;
};
// Object.prototype.hasOwnProperty.call
__webpack_require__.o = function (object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
// __webpack_public_path__
__webpack_require__.p = "";
// Load entry module and return exports
return __webpack_require__(__webpack_require__.s = 0);
})
/************************************************************************/
([
/* 0 */
(function (module, exports, __webpack_require__) {
module.exports = __webpack_require__(1);
}),
/* 1 */
(function (module, exports, __webpack_require__) {
"use strict";
var c = __webpack_require__(2);
console.log(c);
module.exports = {
a: '我是a'
};
}),
/* 2 */
(function (module, exports) {
var c1 = 'c1';
var c2 = 'c2';
module.exports = {
c1: c1,
c2: c2
};
})
]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment