14.Webpack 简介以及使用

1. 概念:

Webpack 是一个静态模块打包工具,从入口构建依赖图,打包有关的模块,最后用于展示你的内容

在这里插入图片描述

2. 静态模块:

编写代码过程中的,html,css, js,图片等固定内容的文件

3. 打包过程,注意:

只有和入口有直接/间接引入关系的模块,才会被打包

在这里插入图片描述

4. Webpack 的作用:

把静态模块内容,压缩,这个和,转译等(前端工程化)

  • 把 less/sass 转成 css 代码
  • 把 ES6+ 降级成 ES5 等
  • 支持多种模块文件类型,多种模块标准语法

5. 为何不学 vite?

现在很多项目还是基于 Webpack 来进行构建的,所以还是要掌握 Webpack 的使用

6. 体验 Webpack 打包 2 个 JS 文件内容

7. 需求:

封装 utils 包,校验手机号和验证码长度,在 src/index.js 中使用,使用 Webpack 打包

8. 步骤:

1. 新建项目文件夹 Webpack_study,初始化包环境,得到 package.json 文件```bashnpm init -y```2. 新建 src 源代码文件夹(书写代码)包括 utils/check.js 封装用户名和密码长度函数,引入到 src/index.js 进行使用* src/utils/check.js```js// 封装校验手机号长度和校验验证码长度的函数export const checkPhone = phone => phone.length === 11export const checkCode = code => code.length === 6```* src/index.js```js/*** 目标1:体验 webpack 打包过程*/// 1.1 准备项目和源代码import { checkPhone, checkCode } from '../utils/check.js'console.log(checkPhone('13900002020'))console.log(checkCode('123123123123'))// 1.2 准备 webpack 打包的环境// 1.3 运行自定义命令打包观察效果(npm run 自定义命令)```3. 下载 webpack webpack-cli 到项目(版本独立)```bashnpm i webpack webpack-cli --save-dev```> 注意:虽然 webpack 是全局软件包,封装的是命令工具,但是为了保证项目之间版本分别独立,所以这次比较特殊,下载到某个项目环境下,但是需要把 webpack 命令配置到 package.json 的 scripts 自定义命令,作为局部命令使用![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-blog.csdnimg.cn/direct/8f3d234c8c824c73a6015ef440b5dea3.png)4. 项目中运行工具命令,采用自定义命令的方式(局部命令)```bashnpm run build```> npm run 自定义命令名字>> 注意:实际上在终端运行的是 build 右侧的具体命名5. 自动产生 dist 分发文件夹(压缩和优化后,用于最终运行的代码)

9. 需求最终流程图:

在这里插入图片描述

小结

1. Webpack 有什么用?

压缩,转译,整合,打包我们的静态模块

2. Webpack 怎么用?

初始化环境,编写代码,安装 Webpack 软件包,配置自定义命令,打包体验查看结果

3. 如何运行 package.json 里的自定义命令?

npm run 自定义命令

4. Webpack 默认入口和出口?

src/index.js 和 dist/main.js

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

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

相关文章

ExecutorService

常用ExecutorServicecurrentThreadSize < coreThreadSize --> create a new threadcurrentThreadSize coreThreadSize --> queue submitted task queue submitted task is full & currentThreadSize <maxPoolSize --> create a new thread queue is full…

C++知识点总结(24):数据结构与栈

数据结构与栈 一、概念1. 数据2. 数据结构3. 数据结构分类 二、栈1. 栈2. 相关概念2.1 入栈2.2 出栈2.3 栈的特点2.4 栈顶2.5 栈底2.6 栈顶元素2.7 栈底元素 三、数组模拟栈1. 初始化空栈2. 入栈3. 出栈4. 获取栈顶元素5. 判断栈是否为空6. 获取栈内元素个数 四、栈的运用1. 括…

[java入门到精通] 11 泛型,数据结构,List,Set

今日目标 泛型使用 数据结构 List Set 1 泛型 1.1 泛型的介绍 泛型是一种类型参数&#xff0c;专门用来保存类型用的 最早接触泛型是在ArrayList&#xff0c;这个E就是所谓的泛型了。使用ArrayList时&#xff0c;只要给E指定某一个类型&#xff0c;里面所有用到泛型的地…

「连载」边缘计算(二十八)03-08:边缘部分源码(源码分析篇)

&#xff08;接上篇&#xff09; eventbus的具体逻辑剖析 从eventbus的启动函数切入分析具体逻辑&#xff0c;具体如下所示。 KubeEdge/edge/pkg/eventbus/event_bus.go func (eb *eventbus) Start(c *context.Context) { // no need to call TopicInit now, we have fixed …

公众号IP白名单已添加服务器IP 122.88... 依然给出 40164 错误

公众号的IP白名单已添加 122.88... 依然给出 40164 错误。 {"errcode":40164,"errmsg":"invalid ip 122.88... ipv6 ::ffff:122.88..., not in whitelist rid: 65e85a07-458dfc0d-16003e03"} 解决方案&#xff1a; 一、检查 AppID 是否正确&…

STM32基本定时功能

1、定时器就是计数器。 2、怎么计数&#xff1f; 3、我们需要有一恒定频率的方波信号&#xff0c;再加上一个寄存器。 4、比如每来一个上升沿信号&#xff0c;寄存器值加1&#xff0c;就可以完成计数。 5、假设方波频率是100Hz&#xff0c;也就是1秒100个脉冲。…

ElasticSearch 模糊查询

前缀搜索 # 前缀搜索 注意&#xff1a; 前缀搜索匹配的是trem,而不是filed&#xff0c;倒排索引的分词 性能比较差&#xff0c;没有缓存 搜索时尽量把前缀词设置长一点 GET /product/_search {"query": {"prefix": {"name": {"value"…

【学习】DLA (Deep Layer Aggregation)

本研究是有由UC Berkeley的Trevor Darrell组发表于2018年CVPR。因为&#xff0c;工作中应用到CenterNet&#xff0c;文章中使用了DLA作为backbone&#xff0c;能够以较高的速度完成推理并维持较高的AP。 DLA文章&#xff1a;论文 DLA 在实际操作中&#xff0c;常常将高级特征…

机器学习-pytorch1(持续更新)

上一节我们学习了机器学习的线性模型和非线性模型的机器学习基础知识&#xff0c;这一节主要将公式变为代码。 代码编写网站&#xff1a;https://colab.research.google.com/drive 学习课程链接&#xff1a;ML 2022 Spring 1、Load Data&#xff08;读取数据&#xff09; 这…

比较字符串

给定程序函数fun的功能是&#xff1a;比较两个字符串&#xff0c;将长的那个字符串的首地址作为函数值返回。 #include <stdio.h> /**********found**********/ char* fun(char *s, char *t) {int s10, t10;char *ss, *tt;sss;ttt; while(*ss){s1;/**********found****…

学习Java的第六天

一、变量 1、变量的定义 在程序执行的过程中变量的值会发生变化&#xff0c;直白来说就是用来存储可变化的数据。从本质上讲&#xff0c;变量其实指的是内存中的一小块存储空间&#xff0c;空间位置是确定的&#xff0c;但是里面放置的值不确定。比如屋子里有多个鞋柜&#x…

启发式算法:禁忌搜索 Tabu Search

文章目录 Tabu searchTabu search算法算例-旅行商TSP问题Tabu search 从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择实现让特定的目标函数值变化最多的移动。 为了避免陷入局部最优解,TS搜索中采用了一种灵活的“记忆”技术,对已经进行的优化过程进…

2024年目标检测研究进展

YOLOv9 图片来源网络 YOLO相关的研究&#xff1a;https://blog.csdn.net/yunxinan/article/details/103431338

网络安全: Kali Linux 进行 SSH 渗透与防御

目录 一、实验 1.环境 2.nmap扫描目标主机 3.Kali Linux 进行 SSH 渗透 3.Kali Linux 进行 SSH 防御 二、问题 1.SSH有哪些安全配置 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本IP备注Kali Linux2022.4 192.168.204.154&#xff08;动态&…

【软考】单元测试

目录 1. 概念2. 测试内容2.1 说明2.2 模块接口2.3 局部数据结构2.4 重要的执行路径 3. 测试过程2.1 说明2.2 单元测试环境图2.3 驱动模块2.4 桩模块 4. 模块接口测试与局部数据结构测试的区别 1. 概念 1.单元测试也称为模块测试&#xff0c;在模块编写完成且无编译错误后就可以…

使用React Context和Hooks在React Native中共享蓝牙数据

使用React Context和Hooks在React Native中共享蓝牙数据 **背景****实现步骤****步骤 1: 创建并导出bleContext****步骤 2: 在App.tsx中使用bleContext.Provider提供数据****步骤 3: 在父组件和子组件中访问共享的数据** **结论** 在开发React Native应用时&#xff0c;跨组件共…

16.Git从入门到进阶

一.Git 初识 1. 概念&#xff1a; 一个免费开源&#xff0c;分布式的代码版本控制系统&#xff0c;帮助开发团队维护代码 2. 作用&#xff1a; 记录代码内容&#xff0c;切换代码版本&#xff0c;多人开发时高效合并代码内容 3. 如何学&#xff1a; 个人本机使用&#xf…

SQL中的不加锁查询 with(nolock)

WITH(NOLOCK) 是一种 SQL Server 中的表提示&#xff08;table hint&#xff09;&#xff0c;可以用来告诉数据库引擎在查询数据时不要加锁&#xff0c;以避免因为锁等待导致查询性能下降。 当多个事务同时访问同一张表时&#xff0c;数据库引擎会对表进行锁定&#xff0c;以确…

数据库中 SQL Hint 是什么?

前言 最近在调研业界其他数据库中 SQL Hint 功能的设计和实现&#xff0c;整体上对 Oracle、Mysql、Postgresql、 Apache Calcite 中的 SQL Hint 的设计和功能都进行了解&#xff0c;这里整理一篇文章来对其进行梳理&#xff0c;一是帮助自己未来回顾&#xff0c;加深自己的思…

Python之Web开发中级教程----搭建Git环境三

Python之Web开发中级教程----搭建Git环境三 多人分布式使用仓库操作实例 场景&#xff1a;开发者A&#xff0c;开发者B在同一个项目协同开发&#xff0c;修改同一个代码文件。开发者A在Win10下&#xff0c;开发者B在Ubuntu下。 1、开发者A修改提交代码 从GitHub: Let’s bu…