webpack
模块加载器兼打包工具
webpack是一个静态模块打包器,通过递归构建依赖关系图,将项目中的JavaScript、CSS、图片等资源打包成一个或多个bundle,解决浏览器端模块加载、代码分割与性能优化问题。
| 收费 | 开源免费 |
|---|---|
| 平台 | Node.js |
| 中文 | 官方文档无中文,社区有中文翻译 |
| 用途 | 将CommonJs/AMD模块打包为浏览器可用的bundle |
webpack以入口(Entry)为起点构建内部依赖图,通过Loader处理非JS文件(如CSS、图片),再经插件(Plugins)执行打包优化、压缩、变量重定义等任务,最终输出到Output指定的目录。
webpack支持代码分割与懒加载,通过require.ensure将代码拆成小块按需加载,减少首屏体积;DllPlugin+DllReferencePlugin可提前打包node_modules中不变的依赖,大幅缩短项目启动编译时间。
webpack自动解析模块间的依赖关系,生成包含所有依赖的bundle,并通过代码压缩、混淆、图片压缩、缓存利用等手段减少文件体积,提升加载速度。
Q1:webpack如何实现代码分割和懒加载?
A1:使用require.ensure语法,第一个参数指定依赖列表,第二个参数传入需单独打包的模块回调,第三个参数设置chunkname(js文件名)。当加载对应页面时,该页面独立的代码块才会被加载,减少首屏体积。
Q2:webpack的DllPlugin能解决什么问题?
A2:DllPlugin将node_modules中不常变动的依赖(如vue、react)提前打包成dll.vendor.js,配合DllReferencePlugin在项目配置中引用,避免每次启动项目时重新编译这些依赖,显著缩短编译时间。需注意:若依赖使用了template(如Vue),需在webpack配置中指定正确的vue版本(vue.common.js而非vue.runtime.common.js),否则可能报错。
更多同类工具与网站,可在构建工具分类继续挑选。
信息核实于 2026年7月,具体以官网为准。
评论
暂无评论