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

  • 个人所得税全年一次性奖金优惠政策
  • 网络贷款需要交钱吗
  • 财务报表没报会影响出口退税吗为什么
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 资产负债表从哪里打出来的
  • 个人提供技术服务费开票税率
  • 调增企业所得税怎么算
  • 当天收入支出日报表怎么做
  • 研发折旧会计分录
  • 收到一笔支付宝转账,如何查看转账人
  • 超市预付款应做在哪个会计科目?
  • 企业分立房产税税收政策
  • 外购商品赠送给顾客
  • 购入的工具应计入哪个科目?
  • 忘了报税算偷税漏税吗
  • 开租金发票可以提前开的吗?
  • 企业所得税弥补亏损明细表怎么看
  • 信托真实案例
  • 免征增值税的进项税额如何处理
  • 季度申报表营业成本怎么填
  • 向境外企业付外汇
  • 分期付款融资账务处理
  • 城建税计税依据及税率
  • 计提坏账为什么无法收回呢
  • 高薪补贴需要交什么税
  • 桌面或文件夹内无图标
  • 工程合同主要看什么
  • 第一启动盘设置为u盘
  • imac夜间模式
  • 价外费用分录
  • PHP:Memcached::getVersion()的用法_Memcached类
  • 厂房拆迁补偿多少钱一平
  • 什么时编制
  • 微软即将终止当前系统版本
  • PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
  • seata+nacos
  • vue自定义日历组件
  • 为公司垫付费用,怎么要回
  • vue修改父组件的值
  • 非成品油发票为什么不能抵扣
  • 小规模纳税人0申报汇算清缴
  • 一般户可以转账给员工报销吗
  • php注册系统
  • 小程序集合软件
  • 固定资产属于有形还是无形资产
  • 增值税普票可以开给个人吗
  • 运输服务是什么
  • 数据库用户名称
  • mysql从一个库导入进另一个库
  • 广告设计与制作专科就业前景
  • 一般纳税人金税盘280怎么做账
  • 本年利润的会计分录怎么做
  • 企业应纳税额计算直接利息的应纳税额
  • 房地产会计开发工资高吗
  • 没有实收资本可以转让吗
  • 二手房交易需缴纳哪些费用
  • 非营利性养老院收费标准一般是多少
  • 房屋租赁费计入什么会计科目
  • 法人往自己公司打款没用注明用途
  • 利润表期初余额怎么填
  • 应交税费科目账务处理
  • 可以先注销银行信用卡吗
  • 编制利润表的主要根据是
  • 应付票据含税吗
  • Ubuntu软件源更新
  • win8系统打开软件闪退
  • win10正式版版本
  • winxp0000007b修复
  • opengl绘制三维图形代码
  • android images
  • javascript的原型,原型链,有什么特点?
  • javascript html5移动端轻松实现文件上传
  • node.js操作数据库报错不再队列中
  • python介绍的主要内容
  • JavaScript中的事件处理
  • 人工成本占企业利润比例
  • PLC交通信号灯控制程序设计
  • 公司外购设备对外投资账务处理
  • 如何落实保密制度规定措施
  • 国家税务总局中山市税务局港口税务分局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设