
Webpack
文章平均质量分 68
Webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图,然后将你项目中所需的每一个模块组合成一个或多个 bundles,它们均为静态资源,用于展示你的内容。
艾光远
大前端炼金术士 | 将代码淬炼成用户指尖流淌的光!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Webpack 项目构建优化详解
本文总结了Webpack打包构建优化的关键策略。开发环境优化包括:配置开发模式、源码映射、HMR热更新;模块解析优化(别名、扩展名、路径);启用文件系统缓存和Babel缓存;减少监听文件、多进程构建等。生产环境优化包括:启用生产模式自动压缩和TreeShaking;代码分割(SplitChunks);图片压缩(ImageMinimizerPlugin);动态导入实现懒加载;使用webpack-bundle-analyzer分析构建产物。文章详细介绍了各项优化的具体配置方法,帮助开发者提升构建效率和输出质量。原创 2025-08-08 22:48:35 · 730 阅读 · 0 评论 -
Webpack的插件机制Tapable
Tapable是Webpack插件系统的核心库,提供多种钩子类型实现插件扩展。主要分为同步(SyncHook/SyncBailHook等)和异步(AsyncSeriesHook/AsyncParallelHook等)两类钩子,支持串行/并行执行、中断机制和参数传递。通过tap/tapAsync注册回调,call/callAsync触发执行,示例展示了同步输出和异步延迟调用的实现方式。在Webpack中,插件可通过compiler.hooks(如emit/done)在编译各阶段注入逻辑,实现功能扩展。原创 2025-08-08 22:08:53 · 625 阅读 · 0 评论 -
Webpack原理剖析与实现
Webpack5的核心架构包含Compiler、Compilation、Module、Chunk等关键模块,通过Tapable插件机制实现扩展功能。Compiler类(lib/compiler.js)协调整个编译流程,Compilation类(lib/compilation.js)处理具体编译逻辑,Module类表示独立模块。Loader在模块编译阶段执行转换,Plugin通过生命周期钩子(emit/compile等)扩展功能。原创 2025-08-08 23:53:00 · 752 阅读 · 0 评论 -
Webpack优化详解
Webpack5优化配置指南:本文详细介绍了Webpack5在本地开发和线上构建中的优化策略。本地开发方面,建议开启模块热替换(HMR)、使用SourceMaps、优化编译速度、配置持久化缓存和增量编译。线上构建优化包括启用生产模式、代码分割、压缩JS/CSS、TreeShaking、懒加载、图片压缩等。文章还提供了完整的开发环境和生产环境配置示例,帮助开发者提高构建效率和项目性能。这些优化措施能显著提升开发体验和应用性能。原创 2025-08-08 21:38:43 · 957 阅读 · 0 评论 -
Webpack中plugin详解
本文系统介绍了Webpack插件(Plugin)的开发与应用。首先讲解了Plugin的基础概念,它是通过监听Webpack生命周期事件来扩展功能的机制,并展示了基本插件结构。接着列举了HtmlWebpackPlugin、CleanWebpackPlugin等8个常用插件及其配置方式。深入部分解析了Plugin实现原理,重点说明了Compiler和Compilation对象的作用,以及如何利用Webpack的事件流机制。原创 2025-08-08 22:42:32 · 693 阅读 · 0 评论 -
Webpack中的Loader详解
Webpack中的Loader是用于处理模块转换的工具,能将不同格式的文件(如TypeScript转JavaScript、SCSS转CSS)转换成Webpack可识别的模块。Loader通过链式调用,每个Loader专注于单一转换任务,如sass-loader、css-loader和style-loader依次处理SCSS文件。常用Loader包括babel-loader(ES6转ES5)、file-loader(处理文件资源)等。原创 2025-08-08 18:05:42 · 1096 阅读 · 0 评论 -
Webpack 核心与基础使用
本文详细介绍了Webpack5的核心配置及使用方法。Webpack是一个模块打包工具,可将JavaScript、CSS等资源打包成浏览器可用的文件。文章涵盖了Webpack的安装(推荐本地安装)、基本目录结构创建,以及webpack.config.js中的核心配置项:Entry(单/多入口)、Output(输出路径和文件名)、Module(处理各种文件类型的rules规则)、Resolve(模块解析路径)等。同时提供了完整的配置示例,包括开发和生产模式的运行方式,帮助开发者快速上手Webpack打包工具。原创 2025-08-08 19:18:38 · 553 阅读 · 0 评论 -
Webpack中常用的Loader和Plugin
本文介绍了Webpack中常用的Loader和Plugin及其分类。Loader部分详细说明了BabelLoader、CSS/StyleLoader、SassLoader等常见工具的使用方法,并按功能分为文件加载、模板编译、脚本转换、样式处理等类别。Plugin部分则列举了HTMLWebpackPlugin、CleanWebpackPlugin等核心插件,并分为行为修改、优化和其他三大类。文章通过具体配置示例,展示了Webpack生态系统中不同工具的实际应用场景和配置方式,为前端工程化构建提供了实用参考。原创 2025-08-08 00:37:26 · 1269 阅读 · 0 评论 -
Webpack 构建过程详解
Webpack打包流程详解:从配置读取到代码输出,Webpack分为7个关键阶段。首先初始化配置和插件系统,然后构建模块依赖图并进行编译转换。通过代码拆分生成chunk后,Webpack进行代码压缩、TreeShaking等优化处理,最终输出打包文件。示例配置展示了如何结合Babel、CSS提取和图片处理等loader,以及Terser、SplitChunks等优化插件实现高效打包。开发阶段还可启用DevServer实现热更新。整个流程实现了前端资源的模块化管理和性能优化。原创 2025-08-08 23:47:16 · 932 阅读 · 0 评论 -
Webpack 核心概念
Webpack是一个模块打包工具,核心概念包括入口(Entry)、输出(Output)、加载器(Loaders)和插件(Plugins)。入口定义构建起点,输出指定打包结果存放位置,加载器处理非JS文件,插件扩展功能。其他重要特性有开发/生产模式(Mode)优化、模块化处理(Modules)、依赖图(Dependency Graph)、热模块替换(HMR)和代码分割(Code Splitting)。这些功能使Webpack能高效管理项目资源,优化构建流程,适合现代前端开发需求。原创 2025-08-08 23:22:51 · 419 阅读 · 0 评论 -
Webpack一键打包多个环境
安装如下插件,以便可以在打包命令中设置环境变量区分不同的环境。在package.json中配置正式环境和测试环境打包命令,同时添加一个命令同打包两个环境。在vue.config.js中添加打包输出配置,其中正式环境打包输出到dist_prod文件夹,测试环境打包输出到dist_test文件夹。在package.json中配置正式环境和测试环境打包命令,同时添加一个命令同打包两个环境。安装如下插件,以便可以在打包命令中设置环境变量区分不同的环境。原创 2025-08-08 21:13:21 · 694 阅读 · 0 评论 -
Webpack提取页面公共资源
在做React开发时,经常需要引入react和react-dom基础库,这样在打包的时候速度就会比较慢,这种情况下我们可以将这些基础库忽略掉,将它们通过CDN的方式直接引入,而不打包到bundle文件里面去。此插件是Wabpack4内置的,无需安装,用于替代CommonsChunkPlugin插件。原创 2025-08-08 18:40:34 · 2112 阅读 · 0 评论 -
Webpack 中使用source map 在开发过程中进行调试
我们都知道webpack在打包的时候会将源代码打包成一个bundle文件,bundle文件就是经过了loader转换,还有webpack的一些插件处理,以及webpack构建过程中的一些转换,最后会生成一个大的JS文件,直接去看这个文件是没法调试的。source map是在开发过程中的一个利期,通过它我们在调试的时候可以定位到源代码,阮一峰老师的写的比较详情细,大家可以去看看。source map一般是在开发环境开启,而在线上环境关闭,否则会暴露业务逻辑,非常不安全。原创 2025-08-08 23:03:17 · 680 阅读 · 0 评论 -
Webpack实现多页面打包
多页面应用(MPA)概念。单页面在开发时会把所有的业务放在一个大的入口里面去,不同的子业务还是同一个URL地址,只不过后面的hash会有所不同。多页面相对于单页面的区别在于,项目发布上线以后,有多个入口文件,每一次页面跳转的时候,后台服务器都会返回一个新的html文档,这种类型的网站也就是多页面网站,也叫多页应用。多页面有什么优势呢?主要有以下两点:1. 多个页面之间是解耦的,利于维护;2. 多页面对SEO更加友好;原创 2025-08-08 00:46:01 · 1989 阅读 · 0 评论 -
Webpack打包时将文件内联
在编写前端代码时,有些文件作为单独的文件引用会更便于维护,但是有些文件却必须要内联。文件内联的场景如下:1. 页面加载时需要初始化的代码需要内联;2. 一些上报与回传的打点的代码需要内联;3. 为了避免页页闪动,首屏渲染的CSS代码需要内联;4. 减少HTTP的网络请求次数,将小图片或字体文件直接内联;在Webpack中内联html和javaScript代码可以通过raw-loader这个插件来完成。原创 2025-08-08 19:26:01 · 664 阅读 · 0 评论 -
Webpack实现将CSS中的px转换为rem
由于现在众多移动设备的兴起,各种手机厂商推出了许多不同屏幕尺寸大小的手机型号,前端人员在编写代码时就需要适配各种手机屏幕。传统的样式适配是利用CSS 的媒体查询,但是这种方式要为每一种规格尺寸的屏幕写一套代码适配,比较繁琐。这种情况下,利用rem来实现移动端的适配会更为方便一点。在W3C中,对rem的定义是相对于根元素字体的大小,即根元素的字体大小是10px,那2rem的实际尺寸就是20px。在Webpack中我们可以利用px2rem-loader这个插件在打包时,自动的将px转换为rem,非常方便。原创 2025-08-08 18:33:40 · 1843 阅读 · 0 评论 -
Webpack中给CSS自动添加前辍
由于现在主流的浏览器有好几种,在编写CSS样式时,需要对各种浏览器作兼容处理,导致在写一些新的CSS样式时需要针对不同的浏览器加上不同的前辍,如果每个前辍都手动来加的话会相当的麻烦。如何才能方便快捷的加上这些前辍呢?其实我们可以借助Webpack中的插件autoprefixer来完成这个功能,它是CSS中的一个后置处理器,与Less和Sass不同,Less和Sass是CSS的预处理器,是在打包前处理,而后置处理器是在打包完成以后进行后置处理。原创 2025-08-08 21:25:26 · 765 阅读 · 0 评论 -
Webpack自动清理打包目录
Webpack在打包的时候,会在指定输出文件夹下面生成打包文件,但是上次打包的文件不会自动清理掉,每次手动删除会比较麻烦,为此,我们需要有一个自动清理的功能。常见的自动清理方式有以下两种:1. 通过 npm scripts 清理理构建目录;以上命令即在执行打包前,先删除打包输出目录dist,然后再执行打包操作。2.使用 clean-webpack-plugin 插件清理;安装插件;配置Webpack文件......原创 2025-08-08 18:23:01 · 1032 阅读 · 0 评论 -
Webpack中压缩代码文件
在开发完成后,代码正式上线都需要对代码进行压缩,这样代码资源会变的更小,访问速度也会变的更快。在Webpack 4.x以上版本以上内置了uglifyjs-webpack-plugin 插件,会对JS文件自动压缩,不需要做其它的任何操作。也可以手动安装这个插件,设置一些另外的参数,比如开启并行压缩,加快打包的速度。原创 2025-08-08 22:19:19 · 1183 阅读 · 0 评论 -
Webpack中的文件指纹
1. 什么是文件指纹?文件指纹就是打包后输出的文件名的后缀,主要用来对修改后的文件做版本区分。2. 文件指纹有哪几种?Hash:和整个项目的构建相关,只要项目文件有修改,整个项目构建的 hash 值就会更改,一般用于图片设置;Chunkhash:与webpack 打包的 chunk 有关,不同的 entry 会生成不同的 chunkhash 值,一般用于设置JS文件;Contenthash:根据文件内容来定义 hash ,文件内容不变,则 contenthash 不变.....原创 2025-08-08 22:38:56 · 2248 阅读 · 0 评论 -
Webpack中的文件监听与热更新
轮询判断文件的最后编辑时间是否变化,某个文件发生了变化,并不会立刻告诉监听者,而是先缓存起来,等待设置的缓存等待时间过后再去执行。--config webpack.dev.js => 开发模式下,执行webpack.dev.js;插件可以不刷新浏览器实现热更新,它在更新时不输出磁盘,而是将更新的存在内存里面。上面两种方式的缺点是每次需要手动刷新浏览器,为了方便开发,我们需要用到热更新。1. 启动 webpack 命令时,带上 --watch 参数;--open => 构建完成后,自动的开启浏览器。原创 2025-08-08 17:22:25 · 919 阅读 · 0 评论 -
Webpack解析文件和资源
需要注意的是,由于loader是链式调用,执行顺序也是从右到左,所以在填写规则时,要先写style-loader,然后再写css-loader,实际在执行时,会通过css-loader去处理,然后将处理的规则传递给style-loader。webpack解析css文件流程,首先通过css-loader 加载 .css 文件,并且转换成 commonjs 对象,然后通过style-loader 将样式通过标签插入到head中。在webpack配置文件的moudle里面添加解析规则。原创 2025-08-08 13:56:04 · 275 阅读 · 0 评论 -
Webpack核心概念
1. 核心概念 EntryEntry 用来指定 webpack 的打包入口。依赖图的入口是 entry,通过该入口,将代码、图片、字体等 依赖不断加入到依赖图中。Entry 的用法:单入口:entry 是一个字符串;多入口:entry 是一个对象;2.核心概念 Output,Output 用来告诉 webpack 如何将编译后的文件输出到磁盘......原创 2025-08-08 19:03:36 · 381 阅读 · 0 评论 -
Webpack安装与配置
Webpack默认的配置文件为webpack.config.js,当然也可以通过webpack --config命令来指定配置文件。webpack配置组成主要由打包的入口文件、打包的输出、打包的环境、Loader配置、插件配置这几部分组成。原创 2025-08-08 00:37:59 · 1261 阅读 · 0 评论 -
Webpack中设置图片不转base64格式
在开发过程中,图片转成base64是常有的事,如上传图片,但是有些情况下确不希望将图片转成base64,因为转成base64后图片不容易区分,也就不能根据图片名称去做一些其它的操作,那么如何才能在Webpack中禁止图片转成base64呢?其实很简单,只需要修改Webpack的配置文件webpack.base.conf.js即可,将里面module下的rules中的图片处理的option 的......原创 2025-08-08 15:00:04 · 4163 阅读 · 0 评论 -
Webpack基础
Webpack是一个静态资源打包工具,可以把JS及其所依赖的css和图片(都认为是一个模块)打包为一个.js文件,让客户端浏览器只引入最终的js文件,从而实现减少HTTP请求的目的,优化访问速度。1.安装 Node Js2.全局安装webpacknpm i -g webpack3.创建 NPM 项目文件package.jsonnpm init 执行完输入相关............原创 2025-08-08 01:21:56 · 277 阅读 · 0 评论