10天进阶webpack---(1)为什么要有webpack

首先就是我们的代码是运行在浏览器上的,但是我们开发大多都是利用node进行开发的,在浏览器中并没有node提供的那些环境。这就造成了运行和开发上的不同步问题。 -----引言

浏览器模块化的问题:

  • 效率问题:精细的模块划分带来了更多的JS文件,更多的JS文件带来了更多的请求,降低了页面访问效率
  • 兼容性问题:浏览器目前仅支持ES6的模块化标准(不支持COMJS),存在兼容问题,当然目前其实只要不是特别老的浏览器都没有问题(可以忽略不记)。
  • 工具问题:浏览器不支持npm下载的第三方包。
    这仅是其中的一部分问题,在日常开发中遇到的业务问题就已经很头痛了,还要再关注这些兼容性,执行效率问题,会很痛苦。

node的问题更少

上面提到的问题,在node端没有那么明显,在node端,运行的JS文件在本地,因此可以本地读取文件,它的效率比浏览器远程传输文件高的多。出现构建工具的根本原因还是在浏览器端,开发时态(devtime)和运行时态(runtime)的侧重点不一样。开发的时候对于工作人员来说,模块划越细,代码书写越整洁越好,而对于浏览器运行来说呢,文件越少越好(减少请求次数),代码越少越少好(进行代码压缩,混合)。

具体:

开发时态,devtime:

  1. 模块划分越细越好
  2. 支持多种模块化标准
  3. 支持npm或其他包管理器下载的模块
  4. 能够解决其他工程化的问题

运行时态,runtime:

  1. 文件越少越好
  2. 文件体积越小越好
  3. 代码内容越乱越好
  4. 所有浏览器都要兼容
  5. 能够解决其他运行时的问题,主要是执行效率问题

解决办法

既然开发时态和运行时态面临的局面有巨大的差异,因此,我们需要有一个工具,这个工具能够让开发者专心的在开发时态写代码,然后利用这个工具将开发时态编写的代码转换为运行时态需要的东西。
在这里插入图片描述
这样的工具,叫做构建工具
这样一来开发者就不需要去关注什么我该使用什么样的导出导入方式,兼容性问题,你会在需要的时候调用构建工具使他转换目标代码。

看到了很多webpack和vite的面试题,但是本人一开始看的时候看的不是很懂,变 准备写一个连载博客,讲解每一个知识点和附带的webpack的面试题。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

好累-还要复习

第一次碰到无极值改变区间长度特征值的关系迹对应的特征向量是原来的一列 共轭的考虑两项相加 那么就有两种情况 观察数列函数,构建拉格朗日(非常重要)

Maven从浅入深(理解篇)

前言 在软件开发领域,包管理器是不可或缺的工具,它们帮助开发者管理和维护项目中的依赖库。通过对比.NET的NuGet包、Python的pip包以及Java的Maven,我们可以从原理上更深刻地理解这些工具的作用和差异。 1. NuGet(.NET&#xff0…

Ollama AI 框架缺陷可能导致 DoS、模型盗窃和中毒

近日,东方联盟网络安全研究人员披露了 Ollama 人工智能 (AI) 框架中的六个安全漏洞,恶意行为者可能会利用这些漏洞执行各种操作,包括拒绝服务、模型中毒和模型盗窃。 知名网络安全专家、东方联盟创始人郭盛华表示:“总的来说&…

【多模态读论文系列】MINIGPT-4论文笔记

【多模态读论文系列】LLaMA-Adapter V2论文笔记 【多模态读论文系列】LLaVA论文笔记 分享第三篇多模态论文阅读笔记 MINIGPT-4: ENHANCING VISION-LANGUAGE UNDERSTANDING WITH ADVANCED LARGE LANGUAGE MODELS 论文地址:https://arxiv.org/pdf/2304.10592 代码…

安信金控:古法金与普通金的区别

古法金和普通金在制作工艺、外观特点、硬度和耐磨性以及价格等方面存在明显差异。本文详细比较了古法金与普通金的区别,供大家参考。 一、制作工艺 1. 古法金 古法金采用传统的铸金工艺,过程复杂且耗时。主要工艺包括: 搂胎:使…

2023下半年上午(22~38)

二十二、 选A 现在定义一个函数,里面有非静态的局部变量f1 在栈区stack里面,先是主函数main入栈,然后调用main里面的方法,即function()入栈,在入栈的一瞬间,局部变量f1就被定义了&a…

使用 GPT-4V 全面评估泛化情绪识别 (GER)

概述 由于情绪在人机交互中扮演着重要角色,因此情绪识别备受研究人员关注。目前的情感识别研究主要集中在两个方面:一是识别刺激物引起的情感,并预测观众观看这些刺激物后的感受。另一个方面是分析图像和视频中的人类情绪。在本文中&#xf…

[代码随想录打卡]Day2:209.长度最小的子数组 59.螺旋矩阵II 区间和 开发商购买土地 总结

双指针:快慢指针、对撞指针、滑动窗口。相关博客:双指针算法详解(快慢指针、对撞指针、滑动窗口) 209.长度最小的子数组 题目:给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于…

list与iterator的之间的区别,如何用斐波那契数列探索yield

问题 list与iterator的之间的区别是什么?如何用斐波那契数列探索yield? 2 方法 将数据转换成list,通过对list索引和切片操作,以及可以进行添加、删除和修改元素。 iterator是一种对象,用于遍历可迭代对象(如列表、元组…

就是这个样的粗爆,手搓一个计算器:JSON格式化计算器

作为程序员&#xff0c;没有合适的工具&#xff0c;就得手搓一个&#xff0c;PC端&#xff0c;移动端均可适用。废话不多说&#xff0c;直接上代码。 HTML: <div class"calculator"><label for"jsonInput">输入 JSON 字符串:</label> …

PaddleNLP的FAQ问答机器人

项目源码获取方式见文章末尾&#xff01; 600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【DDRNet模型创新实现人像分割】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实…

MySQL——索引

目录 一、磁盘 1.1 在系统软件上&#xff0c;并不直接按照扇区进行IO交互&#xff1a; 1.2 磁盘随机访问与连续访问 1.3 建立共识 二、Page 三、InnoDB 四、MyISAM 五、普通索引 一、磁盘 我们在使用Linux&#xff0c;所看到的大部分目录或者文件&#xff0c;其实就是保…

逆向CTF入门(如何找main)

Hello, world of reverse! start函数它在执行一些初始化操作,如获取命令行参数、获取环境变量值、初始化全局变量等&#xff0c;一切准备工作完成之后&#xff0c;再调用main函数 快速定位关键函数&#xff1a; 长驱直入法&#xff1a;当程序功能非常明确时&#xff0c;从程序…

【react框架之dvajs】官网不维护了,还有旧项目在用需要文档的看过来

文档链接: http://gaofeng222.host3v.club/dva-doc/ github:https://gaofeng222.github.io/dva-doc/ 应该是团队没精力搞了&#xff0c;放弃了这块&#xff01;https://github.com/umijs/umi/discussions/12387

探索魁北克:IT精英的理想移民地

在当今这个数字化时代&#xff0c;IT行业无疑是全球最具活力和发展潜力的领域之一。加拿大&#xff0c;尤其是魁北克省&#xff0c;以其开放的移民政策、优越的工作环境和高质量的生活&#xff0c;成为IT专业人士的理想移民目的地。 一、加拿大IT行业的吸引力 职业发展与稳定性…

Linux(CentOS)安装 Nginx

CentOS版本&#xff1a;CentOS 7 Nginx版本&#xff1a;1.24.0 1、下载 Nginx 打开Nginx官网&#xff1a;https://nginx.org/ 2、上传 Nginx 文件到 CentOS 使用FinalShell远程登录工具&#xff0c;并且使用 root 用户连接登录&#xff08;注意这里说的root用户连接登录是指…

Django安装

在终端创建django项目 1.查看自己的python版本 输入对应自己本机python的版本&#xff0c;列如我的是3.11.8 先再全局安装django依赖包 2.在控制窗口输入安装命令&#xff1a; pip3.11 install django 看到Successflully 说明我们就安装成功了 python的Scripts文件用于存…

Qt字符编码

目前字符编码有以下几种&#xff1a; 1、UTF-8 UTF-8编码是Unicode字符集的一种编码方式(CEF)&#xff0c;其特点是使用变长字节数(即变长码元序列、变宽码元序列)来编码。一般是1到4个字节&#xff0c;当然&#xff0c;也可以更长。 2、UTF-16 UTF-16是Unicode字符编码五层次…

微服务设计模式 - 网关路由模式(Gateway Routing Pattern)

微服务设计模式 - 网关路由模式&#xff08;Gateway Routing Pattern&#xff09; 定义 网关路由模式&#xff08;Gateway Routing Pattern&#xff09;是微服务架构中一种非常重要的设计模式&#xff0c;主要用于在客户端和微服务之间提供一个中间层。这一模式通过中央网关路…

【Axure高保真原型】PDF阅读器

今天和大家分享PDF阅读器的原型模板&#xff0c;我们点击左侧的PDF&#xff0c;点击后右侧能看到这个PDF的内容&#xff0c;每个PDF都可以点击查看&#xff0c;如果PDF内容太多&#xff0c;我们也可以通过鼠标滚动来查看。这个模板是用中继器制作的&#xff0c;所以使用也很方便…