webpack》》

Webpark 介绍

官网

Webpack的功能

在现代前端开发中,我们会使用模块化、Sass、TypeScript、图片、字体等资源。但浏览器并不天然支持这些格式,因此我们需要工具将它们打包、转换成浏览器能识别的文件格式。Webpack 就是这样一个强大的前端构建工具。
Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具。它会分析你的项目结构,找到 JavaScript 模块及其他资源(如 CSS、图片),将其打包为一个或多个 bundle 文件。

模块化?

模块化指的是将代码拆成功能单一的文件,每个文件内部维护自己的作用域与功能。
》》ES6 语法
我们通过 import 和 export 实现模块之间的引用与暴露:

在这里插入图片描述

在这里插入图片描述

Webpack 的核心组成结构

# Entry(入口)  Webpack 构建的起点,告诉它从哪里开始分析依赖。
# Output(输出) Webpack 打包后的输出文件路径与文件名。
# Loader(模块转换器)Webpack 默认只能识别 JS 文件。Loader 让 Webpack 能够处理非 JS 文件,如 CSS、图片等,把它们转成 JS 模块。
# Plugin(插件)增强 Webpack 功能的机制,例如自动生成 HTML 文件、提取 CSS、压缩优化代码等。
# Mode(模式)development:开发模式,包含调试信息,不压缩代码。production:生产模式,自动压缩优化。
##############################上面是Webpack 五个核心  #####################################################
# DevServer(开发服务器)Webpack 内建的本地开发服务器,支持热更新(HMR)、自动刷新、快速预览。
# SourceMap映射压缩后的代码到源码位置,方便调试。

项目结构

webpack-demo/
├─ src/
│  └─ index.js
├─ dist/
│  └─ index.html
├─ webpack.config.js
└─ package.json

Webpack 5 的 HMR(热模块替换)

在这里插入图片描述
默认支持:Webpack 5 对开发模式(mode: ‘development’)默认开启 HMR
默认 style-loader 支持 热模块替换的,js是不支持,需要手动配置

//在入口 index.js  中
//判断是否支持热模块替换功能
if(module.hot)
{module.hot.accept('./xxx.js')module.hot.accept('./yyy.js')
}
module.exports = {mode: 'development',devServer: {hot: true, // 开启 HMR},
};

Webpack 5 的 Tree Shaking(摇树优化)

在这里插入图片描述
在这里插入图片描述

css-loader style-loader

file-loader、url-loader
官网常用loader

是因为css-loader只负责加载css文件,不负责解析,如果要将样式解析到dom元素中需要使用style-loader。

常用loader

**babel-loader:**将ES6+代码转换为ES5语法,以便在旧版本的浏览器中运行。
**style-loader 和 css-loader:**用于处理CSS文件。css-loader主要负责处理样式文件中的import和url语句,而style-loader将转换后的CSS模块直接注入到HTML页面中。
**file-loader 和 url-loader:**用于处理图片和其他资源文件。file-loader会为每一个文件生成一个对应的文件,而url-loader将小于设定大小的文件转换为base64编码的URL,减少HTTP请求。
**sass-loader 和 less-loader:**用于处理Sass和Less预处理器。它们将Sass和Less代码转换为普通的CSS代码。
**postcss-loader、postcss-preset-env:**用于为CSS3代码添加浏览器兼容性前缀,以确保在不同浏览器上的一致性。
**html-loader:**用于处理HTML文件,将其中的图片等资源转换为Webpack可以识别的模块。
这只是一些常用的Webpack loader,实际上还有很多其他的loader可以根据具体的需求进行选择和配置。使用适当的loader可以提高开发效率并优化最终打包结果

loader 匹配机制

在这里插入图片描述

module: {rules: [{test: /\.css$/, // 匹配所有的css文件use: ["style-loader", "css-loader"], // 注意顺序!从右向左执行(即先加载css-loader,再加载style-loader)},{test: /\.less$/,use: ["style-loader","css-loader","less-loader",{loader: "postcss-loader",options: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93152.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测评中HTTP 安全头的配置与测试规范

服务器若缺乏必要的安全头配置,其安全防护能力将大幅降低。X-Content-Type-Options 作为基础安全头,需设置 nosniff 参数,以阻止浏览器对 MIME 类型进行自主猜测,避免 text/css 等资源被误当作脚本执行,从源头切断此类…

5G专网项目外场常见业务测试指南(六)-PingInfoView

5G项目必然涉及到终端用户的使用,终端使用情况测试最常用的手段就是长时间7*24小时长ping,对于一个有着几百用户的5G专网,我们常用的ping工具-PingInfoView。 PingInfoView是一款轻量级工具,用于同时对多个IP地址或主机名执行持续…

C#WPF实战出真汁02--搭建项目三层架构

1、什么是三层架构 三层架构是一种软件设计模式,将应用程序划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL),以实现高内聚、低耦合的开发目标。 三层架构的核心组成‌ ‌表示层…

什么是费曼学习法?

什么是费曼学习法?一、费曼学习法的核心逻辑 费曼学习法(Feynman Technique)由诺贝尔物理学奖得主理查德费曼提出,核心思想是通过“以教促学”的方式,用输出倒逼输入,彻底理解知识。其本质是:当…

CVPR 2025 | 北大团队SLAM3R:单目RGB长视频实时重建,精度效率双杀!

北京大学陈宝权团队联合香港大学等推出的实时三维重建系统SLAM3R,首次实现从单目RGB长视频中实时且高质量重建场景稠密点云。该系统通过前馈神经网络无缝集成局部3D重建与全局坐标配准,提供端到端解决方案,使用消费级显卡(如4090D…

现代化水库运行管理矩阵建设的要点

2023年8月24日,水利部发布的水利部关于加快构建现代化水库运行管理矩阵的指导意见中指出,在全面推进水库工程标准化管理的基础上,强化数字赋能,加快构建以推进全覆盖、全要素、全天候、全周期“四全”管理,完善体制、机…

【工具】用于视频遮盖行人及车牌的工具,基于YOLO

最近录制数据时,为了保护隐私,我做了一个小工具:video-privacy-blur 在采集街景、测试视频时,经常会拍到人脸和车牌,这些信息在分享或存储前必须做匿名化处理。手动后期太耗时,于是我基于 Ultralytics YOLO…

EtherCAT概念介绍

一、EtherCAT 简介​EtherCAT(Ethernet Control Automation Technology)是一种工业以太网现场总线,它将计算机网络中的以太网技术应用于工业自动化领域,构成工业控制以太网(工业以太网、工业以太网现场总线&#xff09…

【LeetCode】4. 寻找两个正序数组的中位数

文章目录4. 寻找两个正序数组的中位数题目描述示例 1:示例 2:提示:解题思路算法分析问题本质分析二分查找分割算法详解分割策略可视化分割点计算过程边界情况处理算法流程图各种解法对比时间复杂度分析空间复杂度分析关键优化点实际应用场景测…

HarmonyOS 开发实战:搞定应用名字与图标更换,全流程可运行示例

好的,我帮你把这篇《HarmonyOS 开发实战:快速更改应用名字与图标的终极指南》扩展到约 4000 字,重点会放在代码示例和代码解释部分,并且保留你要的口语化、易读风格。 我会在原文的基础上增加: 更完整的目录结构演示&a…

Keep-Alive 的 “爱情故事”:HTTP 如何从 “短命” 变 “长情”?

🚀 揭秘HTTP Keep-Alive:前端面试不再“短”路! 引言:HTTP连接的“爱恨情仇” 各位前端的小伙伴们,在面试中,HTTP协议绝对是绕不开的话题。而其中一个看似简单却又暗藏玄机的知识点,就是HTTP的“…

仅需8W,无人机巡检系统落地 AI 低空智慧城市!可源码交付

一、项目介绍无人机管控系统是融合无人机技术、传感器技术、物联网及人工智能的智能化检测方案。依托先进无人机技术与前沿 AI 算法,该系统可替代传统人工巡检模式,针对高危、复杂或大面积区域实现高效、精准监测,为城市基础设施检查、安防监…

java-JVM详解

一、JVM 是什么? 定义: JVM(Java Virtual Machine)是一个虚拟计算机,为 Java 字节码提供运行环境。它是 Java “一次编写,到处运行”(Write Once, Run Anywhere)的核心基础&#xff…

QT中ARGB32转ARGB4444优化4K图像性能的实现方案(完整源码)

QT中ARGB32转ARGB4444优化4K图像性能的实现方案(完整源码) 一、问题背景 在QT界面项目中,4K图像采用QImage::Format_ARGB32格式(4字节/像素)时,因数据量大导致编解码叠加性能不足。底层framebuffer实际为AR…

反射在Spring IOC容器中的应用——动态创建Bean

今天在看Java八股文时,对这里产生了一些疑惑,因为在目前做的练手项目中还没有用到过除了new以外的新建对象方式,在请教了其他前辈后对此有了新的理解,所以专门记录以用于梳理思路和复习基础。这里着重讲解反射机制实现新建对象这里…

TRS(总收益互换)系统架构设计:多市场交易的技术实现分析

一、多市场交易环境的技术特征 1.1 市场机制差异(技术视角)技术维度典型实现差异交割周期T0/T1/T2等多种结算模式价格稳定机制部分市场存在波动率控制措施系统接入协议FIX 4.4/ITCH/OMD-C等协议族衍生品支持工具种类与中央对手方清算差异1.2 技术挑战分析…

深度学习-卷积神经网络CNN-批量归一化 BatchNorm

为什么需要批量规范化层呢?让我们来回顾一下训练神经网络时出现的一些实际挑战:首先,数据预处理的方式通常会对最终结果产生巨大影响。 回想一下我们应用多层感知机来预测房价的例子。使用真实数据时,我们的第一步是标准化输入特征…

机器学习-支持向量机器(SVM)

0.1 数字识别 from sklearn.svm import SVC from sklearn.metrics import silhouette_score import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.feature_extraction import DictVectorizer from sk…

昆山PCB板工厂有哪些?

在长三角电子信息产业版图中,昆山凭借完整的产业链配套和精湛的制造工艺,成为国内PCB(印制电路板)生产的重要基地。本文精选五家具有代表性的本土工厂,从技术实力到服务特色展开深度剖析,为行业客户提供精准…

rk3588 ubuntu20.04安装包经常出现的问题总结(chatgpt回复)

问题1 问题 我在rk3588 ubuntu20.04安装相关环境的时候经常出现下面类似的问题,如何系统的解决 The following packages have unmet dependencies : openssh-server : Depends: openssh-client ( 1:8.2p1-4ubuntu0.13) but 1:8.2p1-4ubuntu0.11 is to be installed …