二、资源解析(ES6、CSS、图片&字体)以及文件策略

解析ES6

image.png
image.png
preset就是一些plugins的集合
npm安装@babel/core @babel/preset-env babel-loader
webpack.config.js loader配置
image.png

解析ReactJSX

image.png

解析CSS

image.png

解析LESS || SASS

image.png

图片解析

image.png

字体解析

在webpack里面解析图片和解析字体都一样,因为图片和字体都不是代码文件,
所以二者都可以用file-loader处理
image.png
除了file-loader之外,还可以用url-loader,url-loader可以做小图片小字体的base64的转换。
image.png
limit的意思是小于10240个字节,就是10KB大小的图片或字体就进行base64(二进制变成字符串)加密。在传输过程中是不可读的,避免第三方直接获取并读取二进制数据。
那么进行base64加密之后,并加入到了search.js里面。

文件监听

文件监听是发现源码发生变化时,自动重新构建出新的输出文件。

webpack 开启监听模式,有两种方式:

  • 启动webpack命令的时候,带上—watch参数

image.png

  • 在配置webapck.config.js 中设置watch:true

在设置了watch之后,但是依然有一个缺点,就是代码更新之后,开发者依然需要手动刷新浏览器。

文件监听的原理

image.png

热更新

第一种热更新:Webpack-dev-server

WDS不刷新浏览器,WDS不输出文件,而是放在内存里面,使用的是HotModuleReplacementPlugin插件
image.png

第二种热更新:Webpack-dev-middleware

WDM 将 webpack输出的文件传输给服务器
适用于灵活的制定场景

image.png

热更新原理:
image.png

文件指纹

文件指纹指的是打包输出的文件名的后缀
image.png

文件指纹用于做版本管理,只更新那些被改变的文件,没有被改变的文件浏览器可以用本地的强缓存。

文件指纹的生成

Hash

和整个项目的构建相关,只要项目文件有修改,整个项目构建的hash值就会更改。譬如在一次webpack打包中,有A B两个文件生成,而webpack打包阶段有complier,complation两个过程,在complation过程是负责文件的更新的,如果A页面js被修改,然后重新打包之后,B页面的js文件的hash值也会发生变化。

Chunkhash

和webpack打包的chunk有关,不同的entry会生成不同的chunkhash值。

Contenthash

根据文件内容来定义hash,文件内容不变,则contenthash不变。一般CSS文件使用contenthash。

文件指纹设置

文件指纹是在生产环境中使用的。

CSS

设置MiniCssEXtractPlugin的filename,使用[contenthash]
image.png

图片

设置file-loader的name,使用[hash]
image.png
这里还有一个chunkhash
image.png

文件压缩

JS文件压缩

webpack内置了uglifyjs-webpack-plugin,默认用这个插件进行压缩

CSS文件压缩

使用optimize-css-assets-webpack-plugin
同时使用cssnano——CSS预处理器
插件用于匹配所有的CSS文件,CSSNANO然后对CSS文件进行处理

image.png

HTML文件压缩

修改html-webpack-plugin,设置压缩参数

image.png

若有收获,就点个赞吧

0 人点赞

  • 书签
  • 添加书签 移除书签
  • loader
  • webpack执行原理
    • 一、Webpack的基本概念和日常开发的实用技巧
    • 二、资源解析(ES6、CSS、图片&字体)以及文件策略
    • 三、Webpack进阶用法
  • Webpack运行解析之源码
  • 动手写一个简易的webpack
  • loader
  • 插件
  • 问题
暂无相关搜索结果!
    展开/收起文章目录

    深圳SEO优化公司开封网站排名优化公司吕梁百搜标王公司汕头网站优化软件多少钱坑梓优化推荐遂宁阿里店铺托管哪家好襄樊网站推广哪家好眉山外贸网站制作多少钱上海网站改版公司大丰推广网站推荐赣州SEO按效果付费公司徐州网站搜索优化推荐长春seo优化多少钱吉林关键词按天扣费多少钱鹤岗百姓网标王多少钱吉祥企业网站改版广州网站seo优化价格绥化企业网站建设价格吉林网站推广价格烟台网站推广系统报价和县seo价格北海网络营销公司黔东南百度seo价格温州营销型网站建设报价河池百度竞价公司南充营销型网站建设推荐江门seo公司延边网页制作哪家好榆林百度标王推荐咸阳网站改版推荐酒泉模板网站建设价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化