- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Webpack打包图片-JS-Vue;;为了演示我们项目中可以加载图片,我们需要在项目中使用图片,比较常见的使用图片的方式是两种:
img元素,设置src属性;
其他元素(比如div),设置background-image的css属性;
;我们当前使用的webpack版本是webpack5:
在webpack5之前,加载这些资源我们需要使用一些loader,比如raw-loader、url-loader、file-loader;
在webpack5开始,我们可以直接使用资源模块类型(assetmoduletype),来替代上面的这些loader;
资源模块类型(assetmoduletype),通过添加4种新的模块类型,来替换所有这些loader:
asset/resource发送一个单独的文件并导出URL。
之前通过使用file-loader实现;
asset/inline导出一个资源的dataURI。
之前通过使用url-loader实现;
asset/source导出资源的源代码
之前通过使用raw-loader实现;
asset在导出一个dataURI和发送一个单独的文件之间自动选择。
之前通过使用url-loader,并且配置资源体积限制实现;
;比如加载图片,我们可以使用下面的方式:
但是,如何可以自定义文件的输出路径和文件名呢?
方式一:修改output,添加assetModuleFilename属性;
方式二:在Rule中,添加一个generator属性,并且设置filename;
我们这里介绍几个最常用的placeholder:
[ext]:处理文件的扩展名;
[name]:处理文件的名称;
[hash]:文件的内容,使用MD4的散列函数处理,生成的一个128位的hash值(32个十六进制);
;开发中我们往往是小的图片需要转换,但是大的图片直接使用图片即可
这是因为小的图片转换base64之后可以和页面一起被请求,减少不必要的请求过程;
而大的图片也进行转换,反而会影响页面的请求速度;
我们需要两个步骤来实现:
步骤一:将type修改为asset;
步骤二:添加一个parser属性,并且制定dataUrl的条件,添加maxSize属性;
;事实上,在开发中我们很少直接去接触babel,但是babel对于前端开发来说,目前是不可缺少的一部分:
开发中,我们想要使用ES6+的语法,想要使用TypeScript,开发React项目,它们都是离不开Babel的;
所以,学习Babel对于我们理解代码从编写到线上的转变过程至关重要;
那么,Babel到底是什么呢?
Babel是一个工具链,主要用于旧???览器或者环境中将ECMAScript2015+代码转换为向后兼容版本的JavaScript;
包括:语法转换、源代码转换等;
;babel本身可以作为一个独立的工具(和postcss一样),不和webpack等构建工具配置来单独使用。
如果我们希望在命令行尝试使用babel,需要安装如下库:
@babel/core:babel的核心代码,必须安装;
@babel/cli:可以让我们在命令行使用babel;
使用babel来处理我们的源代码:
src:是源文件的目录;
--out-dir:指定要输出的文件夹dist;;比如我们需要转换箭头函数,那么我们就可以使用箭头函数转换相关的插件:
查看转换后的结果:我们会发现const并没有转成var
这是因为plugin-transform-arrow-functions,并没有提供这样的功能;
我们需要使用plugin-transform-block-scoping来完成这样的功能;
;但是如果要转换的内容过多,一个个设置是比较麻烦的,我们可以使用预设(preset):
后面我们再具体来讲预设代表的含义;
安装@babel/preset-env预设:
执行如下命令:
;在实际开发中,我们通常会在构建工具中通过配置babel来对其进行使用的,比如在webpack中。
那么我们就需要去安装相关的依赖:
如果之前已经安装了@babel/core,那么这里不需要再次安装;
我们可以设置一个规则,在加载js文件时,使用我们的babel:
;如果我们一个个去安装使用插件,那么需要手动来管理大量的babel插件,我们可以直接给webpack提供一个preset,webpack会根据我们的预设来加载对应的插件列表,并且将其传递给babel。
比如常见的预设有三个:
env
react
TypeScript
安装preset-env:
;在开发中我们会编写Vue相关的代码,webpack可以对Vue代码进行解析:
接下来我们编写
您可能关注的文档
- LoRa智慧停车系统开发.pptx
- LS_951Q尾气加氢催化剂在镇海炼化的工业应用.pdf
- DEFORM挤型工艺仿真及模具寿命分析技术.pdf
- DEFORM密封及紧固件制造、安装工艺仿真技术.pdf
- eclipse+weblogic使用手册说明.doc
- ERP应用与实践中的关键问题-现代物流与供应链管理.ppt
- EXCEL基本操作指南.docx
- FSAE赛车的悬架转向及制动系统设计.ppt
- HAZOPkit软件分析报告.pdf
- I.C.E.速冷袋创业商业计划书.ppt
- 2025年分红险:低利率环境下产品体系重构.pdf
- 大学生职业规划大赛《应用物理学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《新媒体技术专业》生涯发展展示PPT.pptx
- 七年级上册英语同步备课(人教2024)Unit 3 课时2 Section A(2a-2f)(同步课件).pdf
- 七年级上册英语同步备课(人教2024)Unit 2 课时4 Section B(1a-1d)(同步课件).pdf
- 七年级上册英语同步备课(人教2024)Unit 3课时6 project(课件).pdf
- 2025年港口行业报告:从财务指标出发看港口分红提升潜力.pdf
- 2023年北京市海淀区初一(七年级)下学期期末考试数学试卷(含答案).pdf
- 2026年高考化学一轮复习第7周氯及其化合物、硫及其化合物.docx
- 2023年北京市西城区北京四中初一(七年级)下学期期中考试数学试卷(含答案).pdf
文档评论(0)