当前位置: 首页 > news >正文

对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打包自动删除上次打包文件

http://www.lryc.cn/news/95850.html

相关文章:

  • 使用wxPython和pillow开发拼图小游戏(四)
  • XGBoost实例——皮马印第安人糖尿病预测和特征筛选
  • 使用MQ发送对象错误
  • 安装和卸载docker,详细教程
  • RabbitMQ的确认机制
  • java项目之人才公寓管理系统(ssm+mysql+jsp)
  • git使用记录
  • Spring MVC异步上传、跨服务器上传和文件下载
  • 性能测试之并发用户数的估计
  • 【全方位解析】如何获取客户端/服务端真实 IP
  • Ceph简介和特性
  • Python基本语法之符号使用
  • 前端vue部署到nginx并且配置https安全证书全流程
  • 三子棋(超详解+完整码源)
  • 【算法提高:动态规划】1.2 最长上升子序列模型(TODO:最长公共上升子序列)
  • 会不会好奇ai绘画生成器?ai创作的灵感从何而来?
  • 【Ajax】笔记-JQuery发送请求与通用方法
  • 视频的音频提取怎么做?这样提取很简单
  • 几百本常用计算机开发语言电子书链接
  • Docker Compose 解析:定义和管理多容器应用,从多角度探索其优势和应用场景
  • Linux系列---【CentOS 7通过MSTSC连接远程桌面】
  • width: calc(~“100% - 267px“);动态css 调样式
  • Windows Server 2012 搭建网关服务器并端口转发
  • 基于linux下的高并发服务器开发(第三章)- 3.10 死锁
  • 09.计算机网络——套接字编程
  • Data Structure, Algorithm,and Applications in C++
  • Apipost使用教程
  • 如何使用Python进行服务器管理和自动化操作?
  • Kafka-partition和消费者的关系
  • 使用克拉默法则进行三点定圆(二维)