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

  • 购买固定资产的进项税可以抵扣吗
  • 金蝶迷你版怎么打印凭证
  • 进项税未抵扣进账了怎么处理
  • 退回的附加税能退回来吗
  • 机票的抵扣进项怎么抵扣
  • 个人签租车协议有法律效力吗
  • 库存现金日记账格式
  • 增值税专用发票可以开电子发票吗
  • 劳务与临时工的区别
  • 房地产公司支付工程款账务处理
  • 存货盘亏进项税额转出会计分录
  • 境内机构经常项目外汇账户
  • 营改增之前固定资产可以抵扣吗
  • 留底进项税额办理退税需要什么手续
  • 开票未收到款会计分录
  • 小规模建筑安装增值税税率是多少
  • 试营业生产的样品怎么做账?
  • 季报小微企业不包括哪些
  • 如何理解总分机的概念
  • 职工教育经费的扣除限额
  • 电脑开wifi给手机用好吗
  • 压缩文件夹发给别人他能看到我桌面上的文件吗
  • u盘写入扇区错误
  • 预提费用支付是指什么
  • 当前页面的脚本发生错误是否要在此页面上继续运行脚本
  • 每季度预缴所得税怎么算
  • php 字符串函数
  • 发票已到货未到会计处理
  • ecap.exe是什么意思
  • 工业企业成本核算流程
  • 双层for循环的程序流程图
  • laravel框架的优缺点
  • ubuntu16.04.4安装教程
  • 蒙特维德云雾森林
  • 机器学习论文源代码浅读:Autoformer
  • javascript获取字符串长度
  • ping命令可以用来测试什么
  • 充电桩折旧年限是多少年
  • 注册劳务派遣公司需要验资吗
  • 金税盘减免税额
  • 筹办期发生业务怎么办
  • 将织梦dedecms转换到wordpress
  • 向境外股东分配股息预提所得税
  • 经营范围没有的项目开票了会怎么样
  • 会议费发票报销附件
  • 公司开一般户和基本户开哪个好
  • 进口货物会计分录举例
  • 技术服务费可以计入成本吗
  • 明细分类账户的名称,核算内容及使用方法是什么规定的
  • 有限公司股权转让需要股东会决议吗
  • 进项税额转出是什么科目
  • 未担保余值举例
  • 持有至到期投资减值准备
  • 投资的信托基金有哪些
  • 产品质量的保证需要哪几方面的支持
  • 软件公司购进软件会计科目
  • 其他应付款转营业外收入摘要怎么写
  • 会计凭证数字书写模板
  • 残保金什么时候截止
  • 资金账簿印花税税率
  • mysql中binlog_format模式与配置详细分析
  • windows2008教程
  • ghost后不能启动
  • win8自带截图
  • win10怎么用cmd删除文件
  • iptables防火墙规则
  • perl $?
  • perl使用保留字引用什么模块
  • js组件是什么
  • android adbd
  • python怎么计数
  • android系统介绍
  • diy相册设计
  • 欢迎使用本公司智能语音电动车mp3
  • 河北省网上税务局电子税务局
  • 收到海关进口增值税专用缴款书怎么确定库存商品的金额
  • 电子发票是什么格式的文件
  • 粮食储备库储备管理自评报告
  • 银元面值有哪些种类
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设