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

  • 发消息给注销的微信对方会收到吗(发消息给注销的qq号)

    发消息给注销的微信对方会收到吗(发消息给注销的qq号)

  • 苹果降低白点值多少合适(苹果降低白点值调多少合适)

    苹果降低白点值多少合适(苹果降低白点值调多少合适)

  • 什么是电子版的证件照(什么是电子版的健康码)

    什么是电子版的证件照(什么是电子版的健康码)

  • 手机打电话就黑屏是怎么回事(手机打电话就黑屏是怎么设置)

    手机打电话就黑屏是怎么回事(手机打电话就黑屏是怎么设置)

  • 蓝光和4k哪个更清楚(蓝光和4k哪个更护眼)

    蓝光和4k哪个更清楚(蓝光和4k哪个更护眼)

  • 手机充一天电有事吗(手机充一天电会怎样)

    手机充一天电有事吗(手机充一天电会怎样)

  • iphone已停用连接itunes可以用手机恢复吗(iphone已停用连接itunes会停用多久)

    iphone已停用连接itunes可以用手机恢复吗(iphone已停用连接itunes会停用多久)

  • oppoace2电池容量(oppoace2电池容量怎么查询)

    oppoace2电池容量(oppoace2电池容量怎么查询)

  • 电脑无限重启进不桌面(电脑无限重启进入bios)

    电脑无限重启进不桌面(电脑无限重启进入bios)

  • 指纹锁打不开了要怎样才能打开(指纹锁打不开了怎么办解锁)

    指纹锁打不开了要怎样才能打开(指纹锁打不开了怎么办解锁)

  • 应用程序错误怎么处理(应用程序错误怎么办电脑)

    应用程序错误怎么处理(应用程序错误怎么办电脑)

  • 耳机蓝牙4.1和5.0区别(蓝牙耳机4.1与5.0有什么区别)

    耳机蓝牙4.1和5.0区别(蓝牙耳机4.1与5.0有什么区别)

  • agsw09是华为什么型号(agsw09是华为多大尺寸)

    agsw09是华为什么型号(agsw09是华为多大尺寸)

  • 什么语言开发android(什么语言开发安卓)

    什么语言开发android(什么语言开发安卓)

  • 数组大小是固定的吗(数组大小是固定的还是可变的)

    数组大小是固定的吗(数组大小是固定的还是可变的)

  • 怎么用手机下载歌到mp3(怎么用手机下载歌曲到内存卡)

    怎么用手机下载歌到mp3(怎么用手机下载歌曲到内存卡)

  • 电脑页面设置点击哪里(点击设置页面)

    电脑页面设置点击哪里(点击设置页面)

  • 苹果6有128g的吗国行(苹果手机6有128g的吗)

    苹果6有128g的吗国行(苹果手机6有128g的吗)

  • 相互宝分摊是什么(相互宝分摊是什么意思怎么取消)

    相互宝分摊是什么(相互宝分摊是什么意思怎么取消)

  • wifi扫一扫用什么扫(wifi扫码用什么扫)

    wifi扫一扫用什么扫(wifi扫码用什么扫)

  • 怎么邀请别人开通支付宝(怎么邀请别人开通支付宝的奖励)

    怎么邀请别人开通支付宝(怎么邀请别人开通支付宝的奖励)

  • x27怎么开视频美颜(x27怎么开视频美颜相机)

    x27怎么开视频美颜(x27怎么开视频美颜相机)

  • 华硕P8H61主板升级BIOS图文教程(华硕p8h61主板升级更换什么主板合适)

    华硕P8H61主板升级BIOS图文教程(华硕p8h61主板升级更换什么主板合适)

  • pytorch :OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading 【已解决】

    pytorch :OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading 【已解决】

  • 初中毕业可以考警察学校吗
  • 会计凭证的数字书写示例图
  • 主营业务收入体现在资产负债表哪里
  • 展示费是业务宣传费吗
  • 企业内部控制调查问卷
  • 股票投资会计科目
  • 加税点开专票合适吗
  • 没有用完的发票怎么退
  • 企业向个人赠送车辆
  • 增值税电子普通发票怎么下载
  • 辞退福利怎么交税
  • 实收资本不是股东打来的怎么调帐
  • 现金结算的股权支付等待期
  • 生育津贴计入应付职工薪酬吗
  • 取得高新技术企业
  • 企业公益捐赠的意义
  • 福利费进行税额转出
  • 双系统跳过磁盘检测
  • windows7远程桌面连接在哪里
  • 主营业务收入平均增长率计算公式近两年
  • 食堂充值管理制度
  • 并购动因理论有什么
  • 怎么安装win7系统步骤
  • iphone和电脑同步
  • 财务收入怎么写
  • 免抵退税的具体计算方法
  • 企业补缴个人所得税罚款
  • php中strrev
  • PHP:pg_transaction_status()的用法_PostgreSQL函数
  • wrme.exe是什么
  • 金融商品转让属于什么服务
  • 中科院怎么赚钱
  • vue中methods的作用
  • php数据库管理
  • 激光雷达lidar特点
  • java使用循环结构输出九九乘法表
  • 浅析Laravel5中队列的配置及使用
  • gunzip命令压缩
  • phpcms怎么用
  • 汽车抵押贷款会上征信吗
  • 临时工交押金会扣钱吗
  • 股东从公司账户上转钱违法吗
  • 企业微信如何微信认证
  • 旅游费怎么记账
  • python rem
  • 分公司开票总公司收款怎么做账
  • 在建工程转入固定资产怎么做
  • 外勤会计是做什么的
  • 金税盘维护费抵扣
  • 增值税无票收入负数预警值
  • 微信红包是否缴纳个税
  • 公司清理固定资产怎样交税
  • 对公账户收到钱都要开票吗
  • 出口不报关怎么收款
  • 福利费需要发票吗
  • 银行手续费发票负数是啥意思
  • 计提个人经营所得税怎么算
  • 未确认融资费用计算公式
  • 残次品生产成本怎么算
  • 发票 发票专用章
  • executor进程
  • windows保护电脑
  • centos6.2安装教程
  • win10缺少文件怎么办
  • win8系统怎么调出运行窗口
  • linux查看磁盘io负载
  • 防火墙ddos攻击防范
  • android 相对布局居中
  • opengl控制物体移动
  • 清理ie八
  • ajax怎么用
  • oracle中提取日期时间的特定部分
  • rsa python3
  • dom教学
  • jquery插件库免费
  • python作用域和命名空间
  • javascript 接口
  • 小微企业税务优惠政策
  • 小规模纳税人能开9个点的发票吗
  • 济南高新区地税局地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设