位置: IT常识 - 正文

tree shaking(摇树优化)(摇树的英文是什么)

编辑:rootadmin
tree shaking(摇树优化) tree shaking(摇树优化)前言随着js的不断发展,性能优化成了主流的方向,但是如何性能优化又成了现在程序员的一大苦恼,而我作为一名前端小白,也就深陷其中,最近学习到了tree shaking,在这里分享一下一、tree shaking是什么?

推荐整理分享tree shaking(摇树优化)(摇树的英文是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:摇树的英文是什么,摇晃树木,摇晃树木,摇树是啥意思是什么,树摇摇晃晃,摇晃树木,摇树是啥意思是什么,摇树的英文是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

在前端的性能优化中,es6 推出了tree shaking机制,tree shaking就是当我们在项目中引入其他模块时,他会自动将我们用不到的代码,或者永远不会执行的代码摇掉,在Uglify阶段查出,不打包到bundle中。

tree shaking(摇树优化)(摇树的英文是什么)

只支持ES6 Module代码。在production 环境默认开启。

二、哪些情况下可以使用tree-shaking呢?

1.首先,要明确一点:Tree Shaking 只支持 ESM 的引入方式,不支持 Common JS 的引入方式。

ESM: export + importCommon JS: module.exports + require

提示:如果想要做到tree shaking,在引入模块时就应该避免将全部引入,应该引入局部才可以触发tree shaking机制

代码如下(示例):

// Import everything (not tree-shaking)import lodash from 'lodash';// Import named export (can be tree-shaking)import { debounce } from 'lodash';// Import the item directly (can be tree-shaking)import debounce from 'lodash/lib/debounce';三、项目中如何配置tree-shaking?

1、开发环境配置tree shaking

// webpack.config.jsmodule.exports = { // ... mode: 'development', optimization: { usedExports: true, }};生产环境下的配置// webpack.config.js 生产环境下只需要把mode配置成‘production’即可module.exports = { // ... mode: 'production',};sideEffects: false 根据环境的不同进行配置以后,还需要在 package.json 中,添加字段:**sideEffects: false,**告诉 Webpack 哪些代码可以处理{ "name": "webpack-demo-1", "sideEffects": false, // ...}// 列子:// All files have side effects, and none can be tree-shaken{ "sideEffects": true}// No files have side effects, all can be tree-shaken{ "sideEffects": false}// Only these files have side effects, all other files can be tree-shaken, but these must be kept{ "sideEffects": [ "./src/file1.js", "./src/file2.js" ]}

这里引用了webpack文档中的配置,点击即可查看详情

五、sideEffects 对全局 CSS 的影响对于那些直接引入到 js 文件的文件,例如全局的 css,它们并不会被转换成一个 CSS 模块。/* reset.css */* { margin: 0; padding: 0; box-sizing: border-box;}html,body { background-color: #eaeaea;}// main.jsimport "./styles/reset.css"这样的代码,在打包后,打开页面,你就会发现样式并没有应用上,原因在于:上面我们将 sideEffects 设置为 false后,所有的文件都会被 Tree Shaking,通过 import 这样的形式引入的 CSS 就会被当作无用代码处理掉。为了解决这个问题,可以在 loader 的规则配置中,添加 sideEffects: true,告诉 Webpack 这些文件不要Tree Shaking。// webpack.config.jsmodule.exports = { // ... module: { rules: [ { test: /\.css$/i, use: ["style-loader", "css-loader"], sideEffects: true } ] },};总结tree shaking就是类似一棵树有长熟的苹果,将已经成熟的苹果摇掉减轻树的负担,这就实现了这个机制在es6中的import和export才可以触发这个机制项目中对tree-shaking的配置tree-shaking对项目中的影响
本文链接地址:https://www.jiuchutong.com/zhishi/296138.html 转载请保留说明!

上一篇:Vue项目如何打包并部署(nginx)(vue项目如何打包成dist)

下一篇:VueUse(中文)——简介(vueity)

  • 荣耀x10有屏幕指纹解锁吗(荣耀x10屏幕指纹解锁怎么设置)

    荣耀x10有屏幕指纹解锁吗(荣耀x10屏幕指纹解锁怎么设置)

  • 第三代计算机采用的电子器件为(第三代计算机采用的主要电子器件为)

    第三代计算机采用的电子器件为(第三代计算机采用的主要电子器件为)

  • 微信聊天怎么录音(微信聊天怎么录制视频)

    微信聊天怎么录音(微信聊天怎么录制视频)

  • 苹果手机屏幕下方的灰条怎么去掉(苹果手机屏幕下面的白框怎么去掉)

    苹果手机屏幕下方的灰条怎么去掉(苹果手机屏幕下面的白框怎么去掉)

  • 毒app上一般多久到货(毒app一般多久收到货)

    毒app上一般多久到货(毒app一般多久收到货)

  • 抖音加了粉丝团怎么退(抖音加了粉丝团在哪里查看)

    抖音加了粉丝团怎么退(抖音加了粉丝团在哪里查看)

  • OPPO手机如何把视频里的声音去掉(oppo手机如何把照片导入电脑)

    OPPO手机如何把视频里的声音去掉(oppo手机如何把照片导入电脑)

  • 苹果账单待处理是什么意思(苹果账单待处理怎么取消)

    苹果账单待处理是什么意思(苹果账单待处理怎么取消)

  • qq号是邮箱号吗(qq号是邮箱号吗怎么注册)

    qq号是邮箱号吗(qq号是邮箱号吗怎么注册)

  • 作品播放量低的原因(播放量太低了)

    作品播放量低的原因(播放量太低了)

  • tbslog.txt是什么文件

    tbslog.txt是什么文件

  • 直播限流怎么解除(直播被限流究竟是什么意思呢?限流直播真的有影响吗)

    直播限流怎么解除(直播被限流究竟是什么意思呢?限流直播真的有影响吗)

  • 华为p40充电口和耳机口是一个吗(华为P40充电口和耳机是一个吗)

    华为p40充电口和耳机口是一个吗(华为P40充电口和耳机是一个吗)

  • 显卡和内存条有关系吗(显卡和内存条有什么区别)

    显卡和内存条有关系吗(显卡和内存条有什么区别)

  • 苹果手机照片有感叹号怎么办(苹果手机照片有感叹号模糊怎么回事)

    苹果手机照片有感叹号怎么办(苹果手机照片有感叹号模糊怎么回事)

  • 商品下架了还能退款吗(商品下架了还能评价吗)

    商品下架了还能退款吗(商品下架了还能评价吗)

  • 苹果公开版什么意思(苹果公开版和快充套装有什么区别)

    苹果公开版什么意思(苹果公开版和快充套装有什么区别)

  • 手机淘宝金币在哪看(手机淘宝金币在哪里查看)

    手机淘宝金币在哪看(手机淘宝金币在哪里查看)

  • 金立s10位置信息打不开(金立s10手机定位打不开了怎么回事)

    金立s10位置信息打不开(金立s10手机定位打不开了怎么回事)

  • 苹果8p电池健康到多少的时候该换电池了(苹果8P电池健康98%)

    苹果8p电池健康到多少的时候该换电池了(苹果8P电池健康98%)

  • 如何取消付款脸刷验证(怎么关闭脸部支付)

    如何取消付款脸刷验证(怎么关闭脸部支付)

  • 手机怎么恢复qq群(手机怎么恢复qq删除的说说)

    手机怎么恢复qq群(手机怎么恢复qq删除的说说)

  • n4100处理器性能(n4100处理器能玩什么游戏)

    n4100处理器性能(n4100处理器能玩什么游戏)

  • 预缴税款是什么科目
  • 电子承兑汇票兑现
  • 待抵扣进项税额转入进项税额
  • 母子公司借款要交什么税
  • 房地产公司土地价款抵扣的账务处理
  • 业务招待产生的快递费
  • 生产用电费
  • 非营利性企业要交企业所得税吗
  • 企业没有收入怎么办
  • 以前年度的所得税怎么入账
  • 税前扣除有标准的项目及标准有哪些?
  • 关于进项税额转出的规定
  • 不缴地税国税可停票吗?
  • 费用无发票财务怎么做账
  • 差旅费进项税能抵扣吗
  • 业务招待费增值税是进项税吗
  • 企业的其他业务成本包括什么
  • 外汇扣税是多少钱啊
  • 营业成本主要包括
  • 物业公司收空调费怎么交税
  • 高新技术企业研发人员学历要求
  • 付款网站制作
  • 苹果mac dns设置
  • win11耳机插电脑没声音怎么办
  • 各类基本社会保障性缴款是单位缴纳部分吗
  • 以前年度费用漏记了怎么办小企业会计准则
  • msoobe.exe是什么
  • php文字转语音源码
  • php解析json对象
  • vue动态组件component原理
  • 合并的命令
  • parted命令详解
  • php第三方支付
  • php静态方法可以被继承吗
  • wordpress all in one
  • 商业承兑汇票和银行承兑汇票的分录
  • 购入固定资产怎么做账务处理
  • 未签订劳动合同辞退赔偿金怎么算
  • 融资租赁利息一般多少
  • 养老院筹开计划
  • sqlserver2008无法连接到local用户登录失败
  • 股票手续费如何计算公式
  • 超市的收银小票丢了可以要求重新打印一张吗
  • 个体户季报要抄税吗
  • 农业用地租赁是免税的吗
  • 员工的交通费发票可以报销嘛
  • 增值税一般纳税人登记表在哪里找
  • 不动产初始登记证明
  • 非公司股东可以分红吗
  • 视频制作开票属于现代服务吗?
  • 领用材料属于什么会计分录
  • 企业的固定资产由于技术进步等原因
  • 三证合一怎么看税务登记证
  • 怎样银行存款,预付帐款,应收帐款余额做资金平衡表
  • 教你鉴别耳机音质的好坏的几大技巧
  • winxp如何删除网卡驱动
  • linux vps 教程
  • linux vim 查找替换
  • gcasInstallHelper.exe是什么进程 作用是什么 gcasInstallHelper进程查询
  • win7系统怎么关闭防火墙设置
  • win10 mobile 1709
  • windows8如何调用摄像头
  • win7突然变卡顿怎么回事
  • win7开机无信号之后黑屏
  • 锁屏壁纸设置后不显示怎么办
  • win10系统预览版
  • win10 mobile 1709
  • ubuntu20安装unity桌面
  • 巧用dos命令合并图层
  • JavaScript中数组的相关方法
  • nodejs为什么性能这么好
  • js实现盒子移动
  • javascript教程
  • flex开发工具
  • 一个简单的javaweb项目
  • jquery移动版
  • 稽查局和税务局哪个好发展
  • 城市配套费需要交税吗
  • 契税减税、免税条件
  • 如何查询纳税人识别号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设