前端技术栈--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.jsapp.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 小时前
微信小程序 静默登录 + 授权登录 双模式配合的设计方案
前端·微信小程序·uni-app
|晴 天|2 小时前
Vue 3 博客 SEO 优化:Meta 标签、Sitemap、Schema.org 实战
前端·vue.js·dreamweaver
Apple_羊先森2 小时前
# MOSS-TTS-Nano 教程 02:CLI 与 Web Demo 实战
前端·人工智能
Bat U2 小时前
JavaEE|多线程(三)
java·前端·java-ee
超级无敌暴龙兽11 小时前
和我一起刷面试题呀
前端·面试
wzl2026121311 小时前
企业微信定时群发技术实现与实操指南(原生接口+工具落地)
java·运维·前端·企业微信
小码哥_常11 小时前
Robots.txt:互联网爬虫世界的“隐形规则”
前端
小码哥_常12 小时前
Android开发神器:AndroidAutoSize,轻松搞定屏幕适配
前端
前端一小卒12 小时前
前端工程师的全栈焦虑,我用 60 天治好了
前端·javascript·后端