webPack基本使用步骤

webPack基本使用步骤

  • 关于webPack
  • webPack配置的几个概念
    • entry(入口)
    • output(输出)
    • loader(输出)
    • plugin(插件)
    • mode(模式)
  • 基本使用过程示例
    • 1.创建测试目录和代码
    • 2. 将index.js通过webpack进行打包

关于webPack

简单来说,webpack就是一个打包工具,可以将相互依赖的html,css,js以及图片字体等资源文件,经过处理打包成一个可执行的项目文件。

webPack配置的几个概念

entry(入口)

配置entry是告诉 webpack 从哪个文件开始打包,构建内部的依赖关系图。当确定了入口起点后,webpack 将从这个文件出发,追踪并识别出所有它直接或间接依赖的模块和库。这样,webpack 就能知道整个项目中哪些资源是必需的,并将它们组织起来。
默认值是 ./src/index.js,但我们可以通过在 webpack.config.js 中配置 entry 属性,来指定一个(或多个)不同的入口起点。

output(输出)

配置output是告诉webpack打包后的文件以什么文件名存在什么路径下面。默认情况下,主输出文件会被放置在 ./dist/main.js 路径下,而其他的生成文件则会被存放在 ./dist 目录中。

loader(输出)

默认的webpack只能处理js和json文件,为了拓展处理CSS、图片或字体文件等其他文件的能力,则需要借助loader。

plugin(插件)

插件可以用于执行范围更广的任务。包括:打包优化,资源管理,注入环境变量等。

mode(模式)

通过设置 mode 参数为 development、production 或 none,你可以启用 webpack 在不同环境下的内置优化。mode 参数的默认值是 production。
development:适用于开发环境,启用快速编译和友好错误提示等功能,但不会进行代码压缩等生产环境优化。

production:适用于生产环境,默认启用代码压缩、树摇(去除未使用的代码)等优化措施,以减小打包后的文件体积。

none:不启用任何优化,适用于需要完全控制构建过程的情况。

基本使用过程示例

本示例没有配置loader和plugin,以开发过程中的js文件为例,演示webpack最基本的使用方法。

1.创建测试目录和代码

在根目录下,创建文件下 src文件夹,用于放开发过程中的源代码,并在src文件夹下新建html文件和js文件。
在这里插入图片描述
js文件中写一个简单的打印代码
在这里插入图片描述
html中进行引用js
在这里插入图片描述
检验下是否生效
在这里插入图片描述
可以看到正常打印出了js中的日志。

2. 将index.js通过webpack进行打包

第1步所示的index.js是我们的源代码,现在我们看看如何使用webpack对index.js进行打包。
1)在根目录打开终端,输入指令npm init -y 初始化项目环境
在这里插入图片描述
初始化后,根目录下会多一个package.json文件
2)执行npm add webpack webpack-cli --dev将webpack安装到开发环境;此时,文件结构如下:
在这里插入图片描述
3)在根目录下手动新建一个webpack.config.js文件,用于配置webpack的参数(前文所提到的entry、output等),该文件配置如下:

const path = require('path');module.exports = {// 模式:开发模式(不压缩代码)mode: 'development',// 入口文件entry: './src/index.js',// 输出配置output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist'),},// 添加 watch 选项实现自动打包watch: true, // 关键配置:监听文件变化
};

上面的配置内容包括三部分:我们的入口文件路径、输出文件的路径和自动打包的配置(如果此项不配置的话,后续开发过程中修改index.js后需要手动输入命令行去打包以更新输出结果)。
4)安装npm add --dev webpack-dev-server,使自动打包配置生效。
5)输入打包命令:npx webpack
在这里插入图片描述
可以看到根据我们配置的output信息,新建了dist文件夹和下面的bundle.js文件,bundle.js文件就是我们打包后的文件,其包含了源文件index.js的信息。
6)验证打包后文件是否生效
修改html中的引用信息,直接引用bundle。
在这里插入图片描述
运行后,发现原来index.js里面打印日志的功能仍然可以正常输出,说明打包后的文件可以代替源文件进行工作了。
7)检验自动打包是否生效
保持html文件内容不动,直接修改index.js源文件的内容,刷新浏览器,发现日志输入结果变化了,说明我们在修改源文件的同时,webpack已经检测到变化并帮我们更新了打包文件。

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

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

相关文章

龙虎榜——20250604

上证指数缩量收阳线,量能依然在5天线上,股价也在5天线上。 深证指数放量收阳线,量能站上5天均线,但仍受中期60天均线压制。 2025年6月4日龙虎榜行业方向分析 1. 黄金 代表标的:曼卡龙、菜百股份。 驱动逻辑&#…

Viggle:开启视频人物替换新纪元

Viggle 的出现,为视频人物替换带来了前所未有的变革,为创作者和爱好者们打开了一扇通往无限可能的大门。 一、Viggle 技术原理剖析 Viggle 是一款基于先进人工智能技术的创新平台,其核心在于能够精准实现静态图片与动态视频的融合转化。它…

【BUG解决】关于BigDecimal与0的比较问题

这是一个很细小的知识点,但是很容易被忽略掉,导致系统问题,因此记录下来 问题背景 明明逻辑上看a和b都不为0才会调用除法,但是系统会报错:java.lang.ArithmeticException异常: if (!a.equals(BigDecimal…

千年之后再出发,铜官窑驶入微短剧的数字航道

过去一年里,微短剧已经成为走向全民关注、平台扶持、政策引导的“内容新主流”。从市值百亿的爆款平台到走出国门的“短剧出海”,微短剧正在重塑中国数字文化的表达方式与产业结构,也成为各地竞相争夺的“新蓝海”。 就在这样的背景下&#…

数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)

数据库管理333期 2025-06-04 数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)1 概念2 要求3 操作流程4 转移失败处理总结 数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604&#xff0…

Trae CN IDE自动生成注释功能测试与效率提升全解析

Trae CN IDE 的自动注释功能可以通过 AI 驱动的代码分析生成自然语言注释,以下是具体测试方法和优势总结: 一、Python 代码注释生成测试 1. 测试环境 IDE:Trae CN IDE(需确认支持 Python)代码示例: def …

软考 系统架构设计师系列知识点之杂项集萃(79)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(78) 第141题 软件测试一般分为两个大类:动态测试和静态测试。前者通过运行程序发现错误,包括()等方法;后者采用人工和计算机…

有公网ip但外网访问不到怎么办?内网IP端口映射公网连接常见问题和原因

有公网IP但外网访问不到的核心原因通常包括:端口未正确映射、防火墙限制、DNS解析问题、运营商端口屏蔽或路由配置错误‌。需依次排查这些关键环节,其中端口映射和防火墙设置是最常见的原因。‌‌ ‌内网IP端口映射公网连接常见问题和原因及解决方案 1…

HttpServletResponse 对象用来做什么?

HttpServletResponse 对象是由 Servlet 容器创建并传递给 Servlet 的 service() 方法(以及间接传递给 doGet(), doPost() 等方法)的。它的核心作用是让 Servlet 能够向客户端(通常是浏览器)发送 HTTP 响应。 通过 HttpServletRes…

FTPS、HTTPS、SMTPS以及WebSockets over TLS的概念及其应用场景

一、什么是FTPS? FTPS,英文全称File Transfer Protocol with support for Transport Layer Security (SSL/TLS),安全文件传输协议,是一种对常用的文件传输协议(FTP)添加传输层安全(TLS)和安全套接层(SSL)加密协议支持的扩展协议。…

前端​​HTML contenteditable 属性使用指南

​​什么是 contenteditable? HTML5 提供的全局属性,使元素内容可编辑类似于简易富文本编辑器兼容性​​ 支持所有现代浏览器(Chrome、Firefox、Safari、Edge) 移动端(iOS/Android)部分键盘行为需测试 &l…

持续领跑中国异地组网路由器市场,贝锐蒲公英再次登顶销量榜首

作为国产远程连接SaaS服务的创领者,贝锐持续引领行业发展,旗下贝锐蒲公英异地组网路由器,凭借出色的技术实力和市场表现,斩获2024年线上电商平台市场销量份额中国第一的佳绩,充分彰显了其在网络解决方案与异地组网领域…

五大主流大模型推理引擎深度解析:llama.cpp、vLLM、SGLang、DeepSpeed和Unsloth的终极选择指南

在人工智能的竞技场上,大模型推理框架就像是为超级跑车精心调校的引擎系统——选对了能让你的AI应用一骑绝尘,选错了可能连"停车场"都开不出去。这些框架的核心价值在于将训练好的"大脑"转化为实际可用的"肌肉记忆",而选择标准则需要像职业赛…

前端面试二之运算符与表达式

目录 1.JavaScript 中的 和 运算符 2.|| (逻辑或) 运算符 与 ES6 默认参数的区别 与 ?? (空值合并运算符) 的区别 3.?.(可选链)运算符 (1). 安全访问深层嵌套属性 (2). 安全调用可能不存在的函数 (3). 安全访问数组元素 4.展开运算符 (..…

GB/T 24507-2020 浸渍纸层压实木复合地板检测

浸渍纸层压实木地板是指以一层或多层专用纸浸渍热固性氨基树脂,经干燥后铺装在胶合板基材正面,专用纸表面加耐磨层,基材背面可加平衡层,经热压、成型的地板。 GB/T 24507-2020 浸渍纸层压实木复合地板测试项目: 测试项…

AWS DocumentDB vs MongoDB:数据库的技术抉择

随着非关系型数据库在现代应用中的广泛应用,文档型数据库因其灵活的结构与出色的扩展性,逐渐成为企业开发与架构设计中的核心选择。在众多文档数据库中,MongoDB 凭借其成熟生态与社区支持占据主导地位;与此同时,AWS 提…

微信小程序实现运动能耗计算

微信小程序实现运动能耗计算 近我做了一个挺有意思的微信小程序,能够实现运动能耗的计算。只需要输入性别、年龄、体重、运动时长和运动类型这些信息,就能算出对应的消耗热量。 具体来说,在小程序里,性别不同,身体基…

三轴地磁传感器的主要应用场景

随着材料科学、微电子技术以及传感器技术的不断进步,三轴地磁传感器的性能将不断提升,包括提高精度、降低功耗、增强抗干扰能力等。 RAMSUN提供的是一款三轴地磁传感器采用第三代AMR技术,带有自动温度补偿的三轴磁传感器,该产品因…

使用 SseEmitter 实现 Spring Boot 后端的流式传输和前端的数据接收

1.普通文本消息的发送和接收 GetMapping("/stream")public SseEmitter streamResponse() {SseEmitter emitter new SseEmitter(0L); // 0L 表示永不超时Executors.newSingleThreadExecutor().execute(() -> {try {for (int i 1; i < 5; i) {emitter.send(&q…

nssm配置springboot项目环境,注册为windows服务

NSSM 的官方下载地址是&#xff1a;NSSM - the Non-Sucking Service Manager1 使用powershell输入命令,java项目需要手动配置和依赖nacos .\nssm.exe install cyMinio "D:\minio\启动命令.bat" .\nssm.exe install cyNacos "D:\IdeaProject\capacity\nacos-s…