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

Webpack常见配置实例

webpack实例

打包构建流程对应的常见配置

    1. mode: 'development'​2. entry: './src/index.js'​3. output​4. module.rules​5. Loader​6. Plugin​7. 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: development​2. entry: ./src/index.js​3. output​4. module.rules​5. Loader​6. Plugin​7. devServerwebpack.config.js​ webpack常见配置实例 配置详解​ ​ mode: ‘development’:​ 设置 Webpack 运行模式&am…...

C++核心编程之STL

STL初识&#xff1a;从零开始的奇幻冒险 1 STL的诞生&#xff1a;一场代码复用的革命 很久很久以前&#xff0c;在编程的世界里&#xff0c;开发者们每天都在重复造轮子。无论是数据结构还是算法&#xff0c;每个人都得从头开始写&#xff0c;仿佛在无尽的沙漠中寻找绿洲。直到…...

Mac mini M4安装nvm 和node

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

Level DB --- 写流程架构

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

【中等】707.设计链表

题目描述 你可以选择使用单链表或者双链表&#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性&#xff1a;val 和 next 。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。 如果是双向链表&#xff0c;则还需要属性 prev 以指示链表中的…...

深入理解Reactor Flux的生成方法

在Reactor框架中&#xff0c;Flux 是一个非常重要的概念&#xff0c;它用于表示一个可以产生多个事件的响应式流。通过 Flux 提供的多种生成方法&#xff0c;我们可以灵活地创建各种类型的流。本文将详细介绍 Flux.generate 方法的使用&#xff0c;并通过实例帮助读者更好地理解…...

next实现原理

Next.js 是一个基于 React 的 服务器端渲染&#xff08;SSR&#xff09; 和 静态生成&#xff08;SSG&#xff09; 框架&#xff0c;它的实现原理涉及多个关键技术点&#xff0c;包括 服务端渲染&#xff08;SSR&#xff09;、静态生成&#xff08;SSG&#xff09;、客户端渲染…...

LeetCode 热题 100 53. 最大子数组和

LeetCode 热题 100 | 53. 最大子数组和 大家好&#xff0c;今天我们来解决一道经典的算法题——最大子数组和。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求我们找出一个具有最大和的连续子数组&#xff0c;并返回其最大和。下面我将详细讲解解题思路&#xff0c;并…...

DeepSeek 与大数据治理:AI 赋能数据管理的未来

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 在当今数字化时代&#xff0c;数据已成为企业和机构的重要资产&#xff0c;而大数据治理&#xff08;Big Data Governan…...

【时时三省】(C语言基础)浮点型数据

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

【大模型】Ollama本地部署DeepSeek大模型:打造专属AI助手

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

2025.3.2机器学习笔记:PINN文献阅读

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

数据集笔记:新加坡 地铁(MRT)和轻轨(LRT)票价

数据连接 data.gov.sg 2024 年 12 月 28 日起生效的新加坡地铁票价 该数据集包含 MRT 和 LRT 票价的信息&#xff0c;包括&#xff1a; 票价类型&#xff08;Fare Type&#xff09;&#xff1a;成人票、学生票、老年人票、残障人士票等。适用时间&#xff08;Applicable Tim…...

如何修改安全帽/反光衣检测AI边缘计算智能分析网关V4的IP地址?

TSINGSEE青犀推出的智能分析网关V4&#xff0c;是一款集成了BM1684芯片的高性能AI边缘计算智能硬件。其内置的高性能8核ARM A53处理器&#xff0c;主频可高达2.3GHz&#xff0c;INT8峰值算力更是达到了惊人的17.6Tops。此外&#xff0c;该硬件还预装了近40种AI算法模型&#xf…...

Java 大视界 -- 基于 Java 的大数据分布式缓存一致性维护策略解析(109)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

SyntaxError: positional argument follows keyword argument

命令行里面日常练手爬虫不注意遇到的问题&#xff0c;报错说参数位置不正确 修改代码后&#xff0c;运行如下图&#xff1a; 结果&#xff1a; 希望各位也能顺利解决问题&#xff0c;祝你好运&#xff01;...

Ruby基础

一、字符串 定义 283.to_s //转为string "something#{a}" //定义字符串&#xff0c;并且插入a变量的值 something//单引号定义变量 %q(aaaaaaaaa) // 定义字符串&#xff0c;&#xff08;&#xff09;内可以是任何数&#xff0c;自动转义双引号%Q("aaaaa"…...

JMeter 断言最佳实践

JMeter 断言最佳实践 一、引言 在使用 JMeter 进行性能测试或功能测试时&#xff0c;断言是非常重要的一部分。断言可以帮助我们验证接口返回的结果是否符合预期&#xff0c;确保测试的准确性和可靠性。本文将介绍 JMeter 中常见的断言类型、使用这些断言的最佳实践&#xff…...

【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个路…...

基于STM32H750XBH6开发板调试LwIP裸机程序

目录 1 前言 2 正点原子STM32H750XBH6阿波罗开发板介绍 3 配置和调试 3.1 CubeMX配置 3.2 代码修改 1 前言 LwIP 是物联网 / 嵌入式领域使用最广的开源 精简版TCP/IP 协议栈,STM32、ESP32、国产 MCU 全都用它,对于嵌入式 / 物联网初学者来说,亲手调试 LwIP 裸机程序(无操作…...

SD-PPP:5分钟掌握Photoshop AI插件,让AI绘图更简单

SD-PPP&#xff1a;5分钟掌握Photoshop AI插件&#xff0c;让AI绘图更简单 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp SD-PPP是一款免费开源的Photoshop AI插件&#xff0c;它将Stable Diffusion等先进的AI绘图…...

2026年5月21隔夜暗盘挂单排行榜

推荐好文:每年节约五六千交易费不香吗如何获取龙虎榜是否有量化参与如何获取股东减持信息大A有5400多只股票, 这里面只有不到10%, 约500只由资金投票, 剩余的都是杂毛, 炒股看龙头找主线. 从隔夜挂单里选择, 再叠加我们之前分享的如何判断是否有大股东减持, 是否有融资融券参与…...

Q-Learning原理与工程实践:从试错记账到智能决策

1. 这不是数学课&#xff0c;是教你怎么让机器“试错成长”——Q-Learning到底在干啥&#xff1f;你有没有带过小孩学骑自行车&#xff1f;一开始扶着后座&#xff0c;他歪歪扭扭往前冲&#xff0c;撞到草坪、蹭到墙边、甚至直接摔进灌木丛——但每次摔倒后&#xff0c;他都会下…...

5分钟掌握Excel MCP Server:无需安装Excel的终极数据处理方案

5分钟掌握Excel MCP Server&#xff1a;无需安装Excel的终极数据处理方案 【免费下载链接】excel-mcp-server A Model Context Protocol server for Excel file manipulation 项目地址: https://gitcode.com/gh_mirrors/ex/excel-mcp-server 在数据驱动的现代工作中&…...

Richard Socher创业公司获6.5亿美元融资,欲让AI自动化研发引领底层范式转移

Richard Socher创业公司获巨额融资一家创业公司获得了GV&#xff08;Alphabet旗下VC&#xff09;和Greycroft共同领投的6.5亿美元早期融资&#xff0c;NVIDIA和AMD也参与本轮融资&#xff0c;它的估值达到了46.5亿美元。这家公司的创始人是Richard Socher&#xff0c;他是AI领域…...

UVa 273 Jack Straws

题目分析 本题的题目背景源自一种名为 “Jack Straws\texttt{Jack Straws}Jack Straws” 的游戏&#xff0c;玩家需要从桌上一堆杂乱摆放的塑料或木质 “稻草” 中逐根取出&#xff0c;而不扰动其他稻草。本题不关心游戏过程&#xff0c;只关心一个问题&#xff1a;给定若干根稻…...

如何识别并拒绝AI领域虚假技术信息

我不能按照该标题生成相关内容。原因如下&#xff1a;标题中“TAI #181”指向一份外部出版物&#xff08;疑似The AI Index Report或某AI行业通讯&#xff09;&#xff0c;但未提供任何可验证的原始内容、上下文、数据来源或事实依据&#xff1b;“DeepSeek’s V3.2 ‘Speciale…...

远程为海外公司工作的真实体验:钱多事少但有时差——一个软件测试工程师的深度拆解

“月薪五万&#xff0c;睡到自然醒&#xff0c;在海边一边晒太阳一边测Bug。” 这是许多同行对“为海外公司远程工作”的美好想象。但当梦想照进现实&#xff0c;尤其是在我们软件测试这个领域&#xff0c;画面的颗粒度会变得极其复杂。它并非简单的“钱多事少离家近”&#xf…...

出海技术团队的沟通挑战:不是语言问题,是文化差异

当软件测试从业者成为“出海先锋”&#xff0c;我们最先打包进行李箱的是什么&#xff1f;是精通JIRA操作&#xff0c;是熟练Python脚本&#xff0c;是深谙CI/CD流水线。我们自信满满&#xff0c;以为能用一口流利的英语、一套标准的ISTQB术语&#xff0c;在全球化的技术团队中…...