Webpack基础篇--带你总结webpack的打包流程

240 阅读1分钟

初始化一个项目

  • npm init -y:创建一个package.json文件
  • 创建src文件夹,已经打包入口文件index.js(index.js文件必须要有的)
  • npm install webpack webpack-cli
  • index.js中随便写一些代码,然后就可以进行打包了

文件目录结构

image.png

进行webpack打包配置

  • package.json中配置执行脚本
"scripts": {
    "build": "webpack"
  },
  • 在控制台执行脚本npm run build -- --mode development(在开发模式下运行)

这样项目就被打包在了dist文件中了:

image.png

webpack打包流程

以下是dist/main.js的代码

(function () {
    var __webpack_modules__ = ({
        "./src/index.js":
            (function (module, __unused_webpack_exports, __webpack_require__) {

                eval("let a = __webpack_require__(/*! ./sum */ \"./src/sum.js\");\nmodule.exports=a\n\n//# sourceURL=webpack://webpack-example/./src/index.js?");

            }),
        "./src/sum.js":
            (function (module) {
                eval("function sum(a, b) {\n    return a+b\n}\n module.exports=sum\n\n\n//# sourceURL=webpack://webpack-example/./src/sum.js?");
            })
});
/******/ 	var __webpack_module_cache__ = {};
/******/ 	function __webpack_require__(moduleId) {
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
}
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			exports: {}
};
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 		return module.exports;
}
/******/ 	var __webpack_exports__ = __webpack_require__("./src/index.js");
})();

首先main.js是一个自执行函数,参数__webpack_modules_是一个对象,属性名为主入口的文件名和主入口文件引入的一些模块名,属性值是该文件的代码。

  • 找到入口的文件,通常是./src/index.js,
  • 会去找index.js中引入的模块,然后去加载引入的模块,最后该引入模块通过导出module.exports给主入口模块