webpack【初体验】使用 webpack 打包一个程序

打包前

共 3 个文件

dist\index.html

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Webpack 示例</title>
</head>

<body>
    <h1>Webpack 示例</h1>
    <!-- 引入打包后的 JavaScript 文件 -->
    <script src="bundle.js"></script>
</body>

</html>

src\hello.js

cpp 复制代码
export function hello() {
  alert("你好");
}

src\index.js

cpp 复制代码
import { hello } from "./hello";
hello();

使用 Webpack 打包

新建文件 package.json

json 复制代码
{
  "name": "webpack_demo",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "build": "webpack --config webpack.config.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "",
  "devDependencies": {
    "webpack": "^5.97.1",
    "webpack-cli": "^6.0.1"
  }
}

新建文件 webpack.config.js

cpp 复制代码
const path = require("path");

module.exports = {
  // 入口文件
  entry: "./src/index.js",
  // 输出配置
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, "dist"),
  },
};

安装依赖

cpp 复制代码
pnpm i

开始打包


打包后

将 hello.js 和 index.js 合并成了一个文件 dist\bundle.js

cpp 复制代码
(()=>{"use strict";alert("你好")})();

最终效果为

浏览器访问 dist\index.html 可见程序正常运行,表示打包成功!

总结 Webpack 的打包过程

  1. Webpack 通过 webpack.config.js 中的 entry 配置,找到打包的入口文件 src/index.js

  2. 沿着入口文件 src/index.js,找到导入的关联文件 src\hello.js

  3. 根据 webpack.config.js 中的 output 配置,Webpack 会将所有找到的文件 ( hello.js 和 index.js )打包成一个名为 bundle.js 的文件,并输出到 dist 文件夹中

  4. dist\index.html 则直接加载的打包后的 bundle.js 文件,实现预期效果

    html 复制代码
        <!-- 引入打包后的 JavaScript 文件 -->
        <script src="bundle.js"></script>
相关推荐
the_answer5 天前
Webpack vs Vite 深度对比分析
前端·webpack
玄玄子7 天前
webpack publicPath作用原理
前端·webpack·程序员
谷无姜8 天前
Webpack5 进阶思考:那些官方文档没讲清楚的事
前端·webpack
柯克七七8 天前
我把祖传项目的构建时间砍了90%,领导以为我只是在"优化了一下",结果隔壁组的CI都崩了来问我配置
前端·webpack
snow@li18 天前
前端:构建工具(Vite / Webpack)的 文件指纹(File Hash) 机制 / 浏览器缓存控制
前端·webpack·哈希算法
SwJieJie21 天前
Webpack vs Vite 构建工程化实战(Vue 项目深度解析)
前端·vue.js·webpack·node.js
2401_8856651923 天前
基于OpenCV的银行智能卡号识别系统完整实现与原理剖析
人工智能·opencv·webpack
xiaofeichaichai25 天前
Webpack
前端·webpack·node.js
代钦塔拉25 天前
VS+OpenCV诡异LNK2019终极解决方案
webpack
半岛@少年1 个月前
Webpack在前端项目中究竟发挥什么作用?
前端·webpack·前端工程化