Webpack常见配置实例
webpack实例
打包构建流程对应的常见配置
1. mode: 'development'2. entry: './src/index.js'3. output4. module.rules5. Loader6. Plugin7. devServer
webpack.config.js
webpack常见配置实例
配置详解
mode: ‘development’:
设置 Webpack 运行模式,可以是 development(开发模式)或 production(生产模式)。开发模式下代码不压缩,生产模式下会启用优化。
entry: ‘./src/index.js’:
配置 Webpack 的入口文件,打包从此文件开始。
output:
配置打包后的文件输出位置和名称。path.resolve 用于获取绝对路径,filename 用于设置输出的文件名。
module.rules:
配置各类文件的处理规则。test 属性用于匹配文件类型,use 属性指定使用的 Loader。
Loader 使用:
babel-loader 处理 JavaScript 文件,将 ES6+ 代码转换为 ES5。
css-loader 和 sass-loader 处理 CSS 和 SCSS 文件,MiniCssExtractPlugin.loader 将 CSS 提取为单独文件。
url-loader 处理图片文件,8KB 以下的图片转为 base64,大于 8KB 的图片则拷贝到输出目录。
自定义 my-loader.js 用于处理 自定义文件。
Plugin 使用:
CleanWebpackPlugin 在每次打包前清理 dist 目录。
HtmlWebpackPlugin 根据模板生成 HTML 文件,并自动注入打包后的 JS 文件。
MiniCssExtractPlugin 将 CSS 提取到单独的文件中。
自定义 MyPlugin 在编译完成后输出提示信息。
devServer:
配置开发服务器,指定内容目录、是否启用 gzip 压缩以及端口号。
Loader 和 Plugin
在 Webpack 中,Loader 和 Plugin 是两个非常重要的概念:
Loader 是用于转换模块的工具。例如,将 TypeScript 转换为 JavaScript,将 SCSS 转换为 CSS,或者将图片文件处理为可以导入的模块。Loader 主要用于文件内容的转换。
Plugin 是用于扩展 Webpack 功能的工具。它们可以在 Webpack 构建过程中执行更复杂的任务,如打包优化、资源管理、环境变量注入等。Plugin 主要用于处理构建过程中的各种任务。
常用的Loader和Plugin
常用 Loader:babel-loader: 将 ES6+ 语法转换为兼容性更好的 ES5 语法,通常与 @babel/preset-env 一起使用。css-loader: 解析 CSS 文件中的 @import 和 url(),并将其转换为 JavaScript 可以处理的模块。style-loader: 将 CSS 插入到 DOM 中的 <style> 标签中。file-loader: 处理文件(如图片、字体),并返回文件的 URL。url-loader: 类似于 file-loader,但当文件小于某个限制时,可以将文件内容转化为 Data URL。sass-loader: 将 SCSS/SASS 文件编译为 CSS。ts-loader: 将 TypeScript 转换为 JavaScript。自定义 Loader: 可以根据需要编写自定义的 Loader,用于处理特定类型的文件。
常用 Plugin:
HtmlWebpackPlugin: 自动生成 HTML 文件,并自动注入打包后的资源(如 JS、CSS 文件)。
CleanWebpackPlugin: 在每次打包前清理输出目录,防止旧文件残留。
MiniCssExtractPlugin: 将 CSS 提取到单独的文件中,而不是内嵌在 JavaScript 中。
DefinePlugin: 创建全局常量,在编译时进行替换。
TerserPlugin: 用于压缩 JavaScript 代码,主要在生产环境中使用。
自定义Loader和Plugin
自定义 Loader 和 Plugin 是 Webpack 的强大功能之一。它们允许我们实现更复杂的功能,如文件转换、代码生成等。自定义 Loader:Loader 实质上是一个函数,它接收源文件内容作为输入,并输出处理后的内容。可以通过 this.callback 返回结果。自定义 Plugin:Plugin 是一个类(ES6+),它包含 apply 方法。apply 方法接收一个 compiler 对象,通过这个对象你可以钩入 Webpack 的各个构建阶段。
相关文章:
Webpack常见配置实例
webpack实例 打包构建流程对应的常见配置 1. mode: development2. entry: ./src/index.js3. output4. module.rules5. Loader6. Plugin7. devServerwebpack.config.js webpack常见配置实例 配置详解 mode: ‘development’: 设置 Webpack 运行模式&am…...
C++核心编程之STL
STL初识:从零开始的奇幻冒险 1 STL的诞生:一场代码复用的革命 很久很久以前,在编程的世界里,开发者们每天都在重复造轮子。无论是数据结构还是算法,每个人都得从头开始写,仿佛在无尽的沙漠中寻找绿洲。直到…...

Mac mini M4安装nvm 和node
先要安装Homebrew(如果尚未安装)。在终端中输入以下命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 根据提示操作完成Homebrew的安装。 安装nvm。在终端中输入以下命令…...

Level DB --- 写流程架构
Level DB是高效的k-v数据库,接受多线程写,既要保证多线程写临界区安全,同时又要保证写流程的尽量高效性。 写入数据 Level DB 用一个deque用来衔接生产-消费模型。一个新的kv写入请求,会先将kv封装成Writer结构体。插入之前要先…...

【中等】707.设计链表
题目描述 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的…...
深入理解Reactor Flux的生成方法
在Reactor框架中,Flux 是一个非常重要的概念,它用于表示一个可以产生多个事件的响应式流。通过 Flux 提供的多种生成方法,我们可以灵活地创建各种类型的流。本文将详细介绍 Flux.generate 方法的使用,并通过实例帮助读者更好地理解…...
next实现原理
Next.js 是一个基于 React 的 服务器端渲染(SSR) 和 静态生成(SSG) 框架,它的实现原理涉及多个关键技术点,包括 服务端渲染(SSR)、静态生成(SSG)、客户端渲染…...
LeetCode 热题 100 53. 最大子数组和
LeetCode 热题 100 | 53. 最大子数组和 大家好,今天我们来解决一道经典的算法题——最大子数组和。这道题在 LeetCode 上被标记为中等难度,要求我们找出一个具有最大和的连续子数组,并返回其最大和。下面我将详细讲解解题思路,并…...

DeepSeek 与大数据治理:AI 赋能数据管理的未来
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 在当今数字化时代,数据已成为企业和机构的重要资产,而大数据治理(Big Data Governan…...

【时时三省】(C语言基础)浮点型数据
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 浮点型数据 浮点型数据是用来表示具有小数点的实数的,为什么在C中把实数称为浮点数呢?在C语言中,实数是以指数正式存放在在储单元中的。一个实数表示为指数可以有不…...

【大模型】Ollama本地部署DeepSeek大模型:打造专属AI助手
【大模型】Ollama本地部署DeepSeek大模型:打造专属AI助手 Ollama本地部署DeepSeek大模型:打造专属AI助手一、Ollama简介二、硬件需求三、部署步骤1. 下载并安装Ollama(1)访问Ollama官网(2)安装Ollama 2. 配…...

2025.3.2机器学习笔记:PINN文献阅读
2025.3.2周报 一、文献阅读题目信息摘要Abstract创新点网络架构实验结论不足以及展望 一、文献阅读 题目信息 题目: Physics-Informed Neural Networks of the Saint-Venant Equations for Downscaling a Large-Scale River Model期刊: Water Resource…...

数据集笔记:新加坡 地铁(MRT)和轻轨(LRT)票价
数据连接 data.gov.sg 2024 年 12 月 28 日起生效的新加坡地铁票价 该数据集包含 MRT 和 LRT 票价的信息,包括: 票价类型(Fare Type):成人票、学生票、老年人票、残障人士票等。适用时间(Applicable Tim…...

如何修改安全帽/反光衣检测AI边缘计算智能分析网关V4的IP地址?
TSINGSEE青犀推出的智能分析网关V4,是一款集成了BM1684芯片的高性能AI边缘计算智能硬件。其内置的高性能8核ARM A53处理器,主频可高达2.3GHz,INT8峰值算力更是达到了惊人的17.6Tops。此外,该硬件还预装了近40种AI算法模型…...

Java 大视界 -- 基于 Java 的大数据分布式缓存一致性维护策略解析(109)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

SyntaxError: positional argument follows keyword argument
命令行里面日常练手爬虫不注意遇到的问题,报错说参数位置不正确 修改代码后,运行如下图: 结果: 希望各位也能顺利解决问题,祝你好运!...

Ruby基础
一、字符串 定义 283.to_s //转为string "something#{a}" //定义字符串,并且插入a变量的值 something//单引号定义变量 %q(aaaaaaaaa) // 定义字符串,()内可以是任何数,自动转义双引号%Q("aaaaa"…...
JMeter 断言最佳实践
JMeter 断言最佳实践 一、引言 在使用 JMeter 进行性能测试或功能测试时,断言是非常重要的一部分。断言可以帮助我们验证接口返回的结果是否符合预期,确保测试的准确性和可靠性。本文将介绍 JMeter 中常见的断言类型、使用这些断言的最佳实践ÿ…...

【Android】类加载器热修复-随记(二)
1. 背景 在【Android】类加载器&热修复-随记一文中了解了类加载,要完成完整的热修复过程,我们需要构建出差量jar包。而这构建差量包分为两个步骤: 原包,注解解析和插桩;变更后,差量包构建;在这两步过程中会涉及到较多的字节码操作,这里我们需要了解下。我们都听过…...

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(八) 聊天框用户列表
简单画了个聊天框 就是咱们的HomePage.jsx 1.后端接口开发 在server/src/index.js 新增 messagesRoutes 先引入 import messageRoutes from ./routes/message.route.js // 消息接口 app.use(/api/messages, messageRoutes) 在routes文件夹下新建message.route.js 有3个路…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...