前端技术栈--webpack

这里拓展一下前端的框架--webpack

这里对这个技术栈分两层来写

1.什么是webpack

2.如何对webpack有个更全面的理解和认识,开发者,要整我webpack的那些部分

先说一下,什么是webpack,以及为什么要了解

webpack。

webpack是一个前段构建工具。

比方说,我们有一个前端的脚手架

vue-cli

vue-element-admin

我们知道,这个前端的文件,最终是要给到用户电脑,手机上的浏览器用的。

这时候,就涉及到两个需求

1.怎么压缩这些文件

2,怎么把这些文件送给用户的浏览器上。

webpack就是解决第一个问题的。

第二个问题是nginx解决的。

好的,现在知道,为什么需要webpack了。

那让我们真正落地了解webpack

刚才说的内容,实际上是webpack的功能。

那webpack的实体是什么呢,是可以通过npm依赖引入的一个包。并且在前端的脚手架工程里配置使用。

我们实际上学的知识,就是。

这个webpack可以压缩什么内容。

具体要实现,什么样的逻辑功能,在项目中如何配置这样的问题。

1.修改压缩工程的进出口

2.webpack可以打包的东西

webpack打包html

webpack打包css,lss

webpack打包js

webpack打包图片

webpack对环境配置

webpack线上优化

使用cdn优化加载速度

分割公共代码

你梳理的这个结构很好,既有业务场景(为什么要用),也有落地的知识点(配置什么、打包什么)。

我来帮你把这两层内容进一步扩展、完善,形成一份更完整、更可落地的"前端框架---webpack"笔记。


1. 什么是 Webpack

一句话定义:

Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具。

更通俗的解释:

  • 你写的前端项目会有很多文件:.js、.css、.less、.png、.vue 等。
  • 浏览器不认识这些复杂结构,也不适合一个个去加载(速度慢、请求多)。
  • Webpack 把这些文件当作模块 ,通过一个入口 开始,分析依赖,最终打包成少数几个浏览器能高效加载的文件(如 bundle.js、app.css)。

为什么需要了解 Webpack(结合你提到的场景)

你提到:

前端文件要给用户浏览器用,有两个需求:

  1. 怎么压缩这些文件 → Webpack
  2. 怎么送到用户浏览器 → Nginx

✅ 非常准确。

实际上,Webpack 解决的是工程化阶段的问题:

  • 压缩、转译、合并、优化
  • 支持新语法(ES6+ → ES5)
  • 支持非 JS 资源(图片、字体、样式)

而 Nginx 是部署阶段的问题:静态资源服务器、反向代理、负载均衡等。

小结:

Webpack = 打包工具(开发 + 构建阶段)

Nginx = 静态资源服务器(运行阶段)


2. 如何对 Webpack 有一个更全面的理解和认识(开发者落地视角)

你分得非常清楚:

Webpack 的实体是 npm 包,在前端脚手架工程里配置使用。

没错。我们学习 Webpack,其实是在学配置它的规则,让它理解我们的项目结构,并按我们期望的方式输出。

2.1 核心配置概念(必须掌握的 4 个)

概念 作用
entry 打包入口,Webpack 从这里开始找依赖
output 打包出口,控制生成文件的名字和路径
loader 处理非 JS 文件(如 CSS、图片、Vue 文件)
plugin 做 loader 做不了的事(如 HTML 模板、压缩、变量注入)

2.2 你提到的「Webpack 可以打包什么」------ 通过 loader 实现

文件类型 常用 loader
HTML(作为模板) html-webpack-plugin(插件)
CSS / LESS css-loader, style-loader, less-loader
JS(ES6+ 转 ES5) babel-loader
图片 / 字体 file-loader, url-loader

2.3 你提到的「修改压缩工程的进出口」

示例:

js 复制代码
module.exports = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.[contenthash].js'
  }
}

2.4 Webpack 环境配置(开发 vs 生产)

环境 特点
development 不压缩、有 source-map、热更新、调试方便
production 压缩代码、Tree Shaking、优化输出

你可以在 webpack.config.js 中根据 NODE_ENV 动态切换。


3. 线上优化(你提到的两个重点展开)

3.1 使用 CDN 优化加载速度

思路:

把第三方库(如 vue, react, lodash)通过 CDN 引入,不打包进 vendor.js。

Webpack 配置方式:

js 复制代码
externals: {
  vue: 'Vue',
  lodash: '_'
}

然后在 HTML 中手动添加 <script src="https://cdn.../vue.js">。

3.2 分割公共代码

使用 SplitChunksPlugin(Webpack 4+ 内置):

js 复制代码
optimization: {
  splitChunks: {
    chunks: 'all',
    cacheGroups: {
      vendor: {
        test: /[\\/]node_modules[\\/]/,
        name: 'vendors',
        chunks: 'all'
      }
    }
  }
}

效果:

  • 公共依赖提取成独立文件
  • 浏览器可以缓存,减少重复加载

4. 总结(一张图理解 Webpack 在你的技术栈中扮演的角色)

复制代码
源代码(src/)
├── index.js
├── style.css
├── logo.png
└── ...

⬇️ Webpack(入口 + loader + plugin)

打包产出(dist/)
├── bundle.js(压缩、转译)
├── main.css(提取、压缩)
└── logo.hash.png(图片指纹)

⬇️ Nginx 托管

用户浏览器访问

你作为开发者要掌握的 Webpack 部分:

  1. 能看懂并修改 webpack.config.js
  2. 知道怎么加 loader 处理新文件类型
  3. 知道怎么分环境配置(dev/prod)
  4. 能做基础优化:CDN、拆包、压缩
  5. 理解前端脚手架(如 vue-cli)底层也是 Webpack
相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万2 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋2 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁3 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95273 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大3 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师3 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学3 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端