当前位置: 首页 > 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个路…...

CodeHike终极指南:10个提升代码演示质量的专业技巧

CodeHike终极指南&#xff1a;10个提升代码演示质量的专业技巧 【免费下载链接】codehike Build rich content websites with Markdown and React 项目地址: https://gitcode.com/gh_mirrors/co/codehike CodeHike是一个强大的工具&#xff0c;它允许开发者使用Markdown…...

GLM-4-9B-Chat-1M镜像升级路径:从GLM-4-9B-Chat到1M版本的权重转换与验证

GLM-4-9B-Chat-1M镜像升级路径&#xff1a;从GLM-4-9B-Chat到1M版本的权重转换与验证 如果你正在使用GLM-4-9B-Chat模型&#xff0c;并且被它128K的上下文长度所吸引&#xff0c;那么现在有个好消息&#xff1a;它的“超级加强版”来了。GLM-4-9B-Chat-1M版本&#xff0c;直接…...

RexUniNLU模型多任务学习原理与实战

RexUniNLU模型多任务学习原理与实战 1. 引言 你是否曾经遇到过这样的困扰&#xff1a;在处理自然语言理解任务时&#xff0c;需要为命名实体识别、关系抽取、文本分类等不同任务分别训练和维护多个模型&#xff1f;这不仅增加了开发成本&#xff0c;还让系统变得复杂难维护。…...

PaddleOCR模型选型避坑指南:从‘轻量级模型缺失文件’到‘通用模型实战’

PaddleOCR模型选型避坑指南&#xff1a;从轻量级到通用模型的实战解析 第一次接触PaddleOCR时&#xff0c;面对琳琅满目的模型选择&#xff0c;很多开发者都会陷入困惑&#xff1a;轻量级模型和通用模型到底有什么区别&#xff1f;为什么下载的轻量级模型总是提示缺少文件&…...

Phi-3-mini-4k-instruct-gguf实战教程:集成到Notion插件实现笔记自动摘要

Phi-3-mini-4k-instruct-gguf实战教程&#xff1a;集成到Notion插件实现笔记自动摘要 1. 项目背景与目标 你是否经常在Notion中积累了大量笔记&#xff0c;却苦于没有时间整理和提炼关键信息&#xff1f;本文将带你一步步将Phi-3-mini-4k-instruct-gguf模型集成到Notion插件中…...

从理论到实践:基于MATLAB的ZF、ML、MRC与MMSE信号检测算法性能深度剖析

1. 信号检测算法入门&#xff1a;从通信系统到MATLAB实现 第一次接触信号检测算法时&#xff0c;我被各种缩写搞得晕头转向。直到在MIMO系统项目中真正用MATLAB实现了这些算法&#xff0c;才明白它们就像不同的"翻译官"&#xff0c;负责把混乱的接收信号还原成原始信…...

lite-avatar形象库惊艳效果展示:高保真表情+精准唇动同步的对话级数字人呈现

lite-avatar形象库惊艳效果展示&#xff1a;高保真表情精准唇动同步的对话级数字人呈现 桦漫AIGC集成开发 | 微信: henryhan1117 1. 引言&#xff1a;数字人交互的新标杆 想象一下&#xff0c;一个数字人不仅能和你流畅对话&#xff0c;还能做出逼真的表情变化&#xff0c;嘴唇…...

在Ubuntu中通过命令行下载和安装Android Studio最新版本

在Ubuntu中通过命令行下载和安装Android Studio最新版本&#xff0c;有以下几种方法&#xff1a; 方法一&#xff1a;直接下载官方最新版本&#xff08;推荐&#xff09; 1. 安装Java JDK依赖 sudo apt update sudo apt install openjdk-11-jdk -y2. 安装64位系统所需的32位库 …...

Yi-Coder-1.5B实战:快速生成Python算法与前端组件代码

Yi-Coder-1.5B实战&#xff1a;快速生成Python算法与前端组件代码 1. 开篇&#xff1a;你的随身编程助手 想象一下&#xff0c;你正在为一个新项目搭建框架&#xff0c;需要写一个快速排序算法&#xff0c;或者需要一个美观的React按钮组件。你打开搜索引擎&#xff0c;在无数…...

Keepalived实战:用MySQL主从高可用方案解决你的数据库单点故障

Keepalived与MySQL主从架构&#xff1a;构建零宕机数据库高可用方案 当数据库成为业务系统的核心支柱时&#xff0c;单点故障可能意味着灾难性的业务中断。我曾亲历一次凌晨3点的数据库故障&#xff0c;整个电商平台瘫痪两小时&#xff0c;损失超过七位数。这次教训让我深刻认识…...