对Webpack的理解

简介: 对Webpack的理解

Webpack是目前比较物流的前端构建工具,它基于入口,用不同的Loader来处理不同的文件

Webpack的核心概念

Entry:入口,Webpack执行构建的第一步将从Entry开始,可抽象成输入。告诉Webpack要使用哪个模块作为构建项目的起点,默认为./src/index.js

output:出口,告诉Webpack在哪里输出它打包好的代码以及如何命名,默认为./dist

Module:模块,在Webpack里一切皆模块,一个模块对应着一个文件。Webpack会从配置的Entry开始递归找出所有依赖的模块。

Chunk:代码块,一个Chunk由多个模块组合而成,用于代码合并与分割。

Loader:模块转换器,用于把模块原内容按照需求转换成新内容。

Plugin:扩展插件,在Webpack构建流程中的特定时机会广播出对应的事件,插件可以监听这些事件的发生,在特定时机做对应的事情。


Webpack的基本功能

代码转换:TypeScript编译成JavaScript、SCSS编译成CSS等等

文件优化:压缩JavaScript、CSS、html代码,压缩合并图片等

代码分割:提取多个页面的公共代码、提取首屏不需要执行部分的代码让其异步加载

模块合并:在采用模块化的项目有很多模块和文件,需要构建功能把模块分类合并成一个文件

自动刷新:监听本地源代码的变化,自动构建,刷新浏览器

代码校验:在代码被提交到仓库前需要检测代码是否符合规范,以及单元测试是否通过

自动发布:更新完代码后,自动构建出线上发布代码并传输给发布系统。


Webpack如何配置多入口文件?

entry: { home: resolve(__dirname, "src/home/index.js"), 
about: resolve(__dirname, "src/about/index.js")}


用于描述入口的对象。可以使用如下属性:

dependOn:当前入口所依赖的入口。它们必须在该入口被加载前被加载。

filename:指定要输出的文件名称。

import:启动时需加载的模块。

library:指定library选项,为当前entry构建一个library。

runtime:运行时chunk的名字。如果设置了,就会创建一个新的运行时chunk。在Webpack 5.43.0之后可将其设为false以避免一个新的运行时chunk。

publicPath:当该入口的输出文件在浏览器中被引用时,为它们指定一个公共URL地址


常用loader

css-loader读取合并CSS文件

style-loader把CSS内容注入到JavaScript里

sass-loader解析sass文件(安装sass-loader,node-sass)

postcss-loader自动添加浏览器兼容前缀(postcss.config配置)

url-loader将文件转换为base64 URI。

vue-loader处理vue文件。


常见Plugins

HtmlWbpackPlugin自动在打包结束后生成html文件,并引入bundle.js

cleanwebPackPlugin打包自动删除上次打包文件

相关文章
|
6月前
|
缓存 JavaScript
webpack之SplitChunksPlugin
webpack之SplitChunksPlugin
56 0
|
1天前
|
移动开发 JSON JavaScript
一文带你了解和使用webpack(2024年11月)
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端已有两年半的时间,目前正努力向全栈开发迈进。如果你在我的博客中有所收获,欢迎关注我,我会持续更新更多优质内容。你的支持是我最大的动力!🎉🎉🎉
一文带你了解和使用webpack(2024年11月)
|
2月前
|
JavaScript 前端开发
webpack快速使用
webpack快速使用
171 63
|
6月前
|
前端开发 JavaScript
webpack使用
webpack使用
|
6月前
|
前端开发 JavaScript Linux
|
6月前
|
JSON JavaScript 前端开发
Webpack详解(二)
Webpack详解
182 0
|
JSON 缓存 前端开发
webpack相关详细讲解。
webpack相关详细讲解。
|
JavaScript 前端开发
从了解到使用webpack
Webpack本质上是一种前端资源编译,打包工具
103 0
|
前端开发 JavaScript
关于 Webpack 的介绍,什么是 Webpack?
Webpack 是一款现代化的前端构建工具,它可以将你的项目中的多个 JavaScript 模块打包成一个或多个 bundle 文件,同时还可以处理各种类型的静态资源,比如 CSS、图片等等。 Webpack 最初是由 Tobias Koppers 开发的,目前已经成为了前端开发中使用最广泛的构建工具之一。
154 0
|
缓存 算法
webpack的chunkFilename详细说明
webpack的chunkFilename详细说明
266 0