位置: 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)

  • 高德地图打车怎么开发票(高德地图打车怎么自动付款)

    高德地图打车怎么开发票(高德地图打车怎么自动付款)

  • 苹果xsmax的内存多大(iphonexsmax手机内存)

    苹果xsmax的内存多大(iphonexsmax手机内存)

  • 4000mah电池够用多久(4000mah电池够用多久暖手宝)

    4000mah电池够用多久(4000mah电池够用多久暖手宝)

  • 苹果a1863是什么型号(苹果a1863是苹果几)

    苹果a1863是什么型号(苹果a1863是苹果几)

  • 健康码用户和姓名不匹配怎么办(健康码用户和姓名怎么填)

    健康码用户和姓名不匹配怎么办(健康码用户和姓名怎么填)

  • 佳能打印机加墨后为啥打印不出来了呢(佳能打印机加墨后怎么操作才能打印)

    佳能打印机加墨后为啥打印不出来了呢(佳能打印机加墨后怎么操作才能打印)

  • 电脑变卡了怎么清理(电脑变卡了怎么弄)

    电脑变卡了怎么清理(电脑变卡了怎么弄)

  • 苹果x音量小怎么办(苹果x音量怎么调到最大)

    苹果x音量小怎么办(苹果x音量怎么调到最大)

  • 快手直播设置房间密码(快手直播怎样设置房间权限)

    快手直播设置房间密码(快手直播怎样设置房间权限)

  • 一个文件的扩展名通常表示为(一文件的扩展名为.rmvb,则该文件是)

    一个文件的扩展名通常表示为(一文件的扩展名为.rmvb,则该文件是)

  • 优酷电视端叫啥名字(优酷电视上叫什么软件)

    优酷电视端叫啥名字(优酷电视上叫什么软件)

  • 苹果下载的字体怎么在手机中使用(苹果下载的字体怎么使用)

    苹果下载的字体怎么在手机中使用(苹果下载的字体怎么使用)

  • 趣键盘为什么不能直接发送(趣键盘怎么提现不了了?)

    趣键盘为什么不能直接发送(趣键盘怎么提现不了了?)

  • win7受限账户怎么创建(win7限制用户权限)

    win7受限账户怎么创建(win7限制用户权限)

  • 荣耀9能不能人脸识别(荣耀9能不能人脸解锁)

    荣耀9能不能人脸识别(荣耀9能不能人脸解锁)

  • 闲鱼上卖东西要注意什么(闲鱼卖东西要银行卡吗)

    闲鱼上卖东西要注意什么(闲鱼卖东西要银行卡吗)

  • h310主板配什么cpu(h310主板配什么cpu,要求带核显性价比)

    h310主板配什么cpu(h310主板配什么cpu,要求带核显性价比)

  • 苹果x为什么下载不了网易云(苹果14怎么看是不是国行)

    苹果x为什么下载不了网易云(苹果14怎么看是不是国行)

  • 韩剧tv怎么切换清晰度(韩剧tv怎么切换语言)

    韩剧tv怎么切换清晰度(韩剧tv怎么切换语言)

  • videleap怎么保存视频(vi命令怎么保存)

    videleap怎么保存视频(vi命令怎么保存)

  • 华为nova5pro耳机口在哪(华为nova5pro耳机模式怎么取消)

    华为nova5pro耳机口在哪(华为nova5pro耳机模式怎么取消)

  • 华为p30可以遥控空调吗(华为P30可以遥控格力美的空调)

    华为p30可以遥控空调吗(华为P30可以遥控格力美的空调)

  • 小米9se有红外线功能吗(小米9se红外线在哪)

    小米9se有红外线功能吗(小米9se红外线在哪)

  • 取消双v会员(取消双v会员剩余的流量还能用吗)

    取消双v会员(取消双v会员剩余的流量还能用吗)

  • python函数中返回值的作用(python 函数的返回值)

    python函数中返回值的作用(python 函数的返回值)

  • 盘亏存货进项税额转出的计算公式
  • 一般纳税人做外账没有一点成本票怎么办?
  • 小微企业企业所得税税率变化
  • 财务软件属于无形资产的哪一种
  • 以前年度应收账款无法收回的账务处理
  • 利润表没有资产减值损失这一栏,需要增加吗
  • 向董事赠送礼品怎么写
  • 有哪些税收政策类型
  • 应付账款是负数怎么回事
  • 技术服务行业分析
  • 认缴制下股权转让如何不交税
  • 企业支付宝对公打款
  • 自有房屋的装修费计入长期待摊
  • 返聘人员如何缴纳个人所得税
  • 公司钱被取走怎么处理
  • 新公司能先用别人的钱吗
  • 联想笔记本bios密码忘记了
  • 鸿蒙系统怎么自动填充密码
  • 组策略在哪里
  • 清理macbook清除系统垃圾
  • win10设置待机时间长怎么在哪里设置
  • 汇总收款凭证怎么做账
  • 装修材料如何入账
  • 计提公积金账务处理需要什么凭证
  • 财务管理公司属于什么行业类别
  • php最安全的登录功能
  • php 构造方法
  • 增值税纳税申报表在哪里打印
  • 什么是分红型保险?
  • 企业筹建期发生的费用有哪些
  • css width height
  • php函数的定义和调用
  • 租赁公司的
  • matlab进行图像处理
  • 毕业设计基于plc的全自动包装机
  • lvs命令
  • netconf over ssh
  • 发票金额和打款金额不一致怎么办
  • 员工休产假不发工资违法吗
  • 预提费用核算内容有哪些
  • 二季度报表是累计数吗
  • 小微企业季度申报所得税税率
  • 视同销售的会计处理是指?
  • 资产负债表的种类
  • 残疾人就业保障金上年职工工资总额
  • 预付费卡开票
  • 资源税申报怎么操作
  • mysql出现箭头
  • 采用公允价值模式计量的投资性房地产处置
  • 企业财务费用为负好不好
  • 公司的零星开支怎么做账
  • 工资的内容包括很多项
  • 材料成本差异的含义
  • 收单清算款计入什么费用
  • 个体工商户缴纳社保属于职工社保吗
  • 已经计提工资后怎么做账
  • 海关对旧设备进口规定
  • 建设项目开办费包括哪些
  • 饭店会计做账流程
  • 组织机构代码证图片
  • 存储过程的输出参数有且只能有一个
  • windows 地址解析命令
  • Windows任务栏中的活动程序间不能切换对吗
  • win7删除通知区域图标
  • win8安装出现了一些问题
  • windows无法更改设置
  • centos 搜索
  • 怎么安装最新显卡驱动
  • win8不能安装软件
  • windows7无法安装
  • d命令怎么用
  • jsp验证邮箱格式
  • node.js实战
  • shell脚本监控进程
  • 批处理程序删除文件夹中临时文件
  • activity生命周期的方法
  • jQuery webuploader分片上传大文件
  • 给shell脚本传参数
  • android程序代码
  • 重庆个人所得税是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设