什么是 webpack?

Webpack 介绍

什么是 webpack?

:::tip 官方描述

webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个 bundles,它们均为静态资源,用于展示你的内容。

:::

怎么理解这段话呢,我们项目一般都是由 html 文件、css 文件、js 文件组成。使用 webpack 模块化打包工具,可以把整个项目的代码全部打包并且压缩成一个名为 bundles.js 的文件,通过 index.html 去引入它。

我们在学习 webpack 的时候,可能会觉得很难,那是因为你还没想通。我们应该要多一点思考为什么会有这个东西,它存在的意义是什么?解决了什么问题?抱着这种心态去学习,复杂的问题也会变的很简单。

官方文档地址:https://webpack.docschina.org

webpack 核心

webpack 中的核心是 loader,假设没有 loader,那么 webpack 就是一个合并代码的工具。

webpack 工作原理

  1. 一般项目都会散落各种代码以及资源文件
  2. webpack 会根据配置找到资源文件的入口(一般都是 js 文件)
  3. 顺着入口文件的代码寻找 import 或者 require 语句,解析推断出来所对应的资源模块,
  4. 然后分别解析每个资源模块所对应的依赖,最终将项目中有用到的文件形成一个依赖树
  5. webpack 遍历依赖树,找到每个资源节点所对应的文件,然后通过配置的 loader 加载器去加载
  6. 最后将加载到的结果添加到 bundle.js 中

原文链接:菜园前端

相关推荐
Lucky_Turtle2 分钟前
【HTML】前端页面禁止缩放
前端·html
孟陬6 分钟前
JavaScript 反引号(` backtick)和双引号的不完全等价 ≠ 场景
javascript·node.js·bun
恋猫de小郭6 分钟前
Genkit Dart 1.0 发布,Flutter 原生的 AI Agent 终于完整了
android·前端·flutter
思码梁田14 分钟前
CSS transform 转换详解:translate、rotate、scale、skew 与 3D 变换一次讲清
前端·css·transform·skew·scale·translate·rotate
第10086个小白19 分钟前
flutter桌面端打包方式(Inno Setup Compiler)版本
前端·flutter
派小心.32 分钟前
多端数据分析平台的漏斗可以跨端搭建吗?5 步搭出跨端转化漏斗
大数据·运维·服务器·前端·数据分析
IT_陈寒43 分钟前
为什么我的React组件一直在意外重渲染?
前端·人工智能·后端
Su米苏1 小时前
基于 Token 预算的上下文压缩控制器(Context Compaction Controller)
前端·数据库·人工智能
骇客野人1 小时前
Java 开发组件大全覆盖后端主流技术栈(基础、Web、ORM、中间件、微服务、安全、工具、测试、运维、信创适配常用组件)
java·前端·中间件
谢亮_vipxieliang1 小时前
深入理解 JavaScript 数据类型与类型转换
开发语言·javascript·ecmascript