首页 > 其他分享 >Tree-shaking ESModule

Tree-shaking ESModule

时间:2024-04-29 13:56:02浏览次数:18  
标签:ESModule Tree react 格式 esm shaking 打包

 

一、需求背景与收益

Tree-shaking剪裁无用js与css,目前在dc组实现,首页效果如下:

1、原文件5.19M,优化后2.61M

2、gzip文件988.25KB,  优化后665.63KB

3、Js文件减少三分之一,项目越久收益越高

4、运行速度和用户体验都会提升

5、Lighthouse性能评分提升大概4-8分

6、属于攻坚技术难点

 

二、实现步骤:

1、打包esm格式

⑴ 刘从周、刘晓文、header、footer所有公共包用bit15打包esm格式,使用编译器 learnbit.react/envs/react-esm

Bit. Composable software platform.

⑵ dc组件库用bit14打包esm格式,使用编译器mik-technology.compile-react-esm/compilers/react 

Bit. Composable software platform.

⑶ michaels-ssr使用rollup打包esm格式

2、适配项目

⑴ next项目用中间件next-transpile-modules解析esm包

⑵ nginx项目会自动解析esm 包,只需解决bug

⑶ 推广各组使用测试包,会有一波bug

标签:ESModule,Tree,react,格式,esm,shaking,打包
From: https://www.cnblogs.com/jerry-mengjie/p/18165539

相关文章

  • ant-design Tree树形控件,通过expandedKeys控制收缩或折叠失效
    一、概述AntDesign的树形组件Tree,通过属性expandedKeys手动控制组件的展开和收缩时,点击节点后更新expandedKeys属性值可以正常展开,再点击左侧三角形小图标时(onExpand)却不能收缩了。  二、问题分析a.根据以往经验,出现keys的问题,一般是由key的数据重复或类型(尤其Number......
  • LSM Tree 简笔
    LSMTree总览写流程:就地写,写入memTable当activememTable满后,转变为readOnlymemTable,在合适时机flush入磁盘。当前level数据满后,进行归并操作,把数据排序,去重后转入下一level。背景介绍两种场景,读多写少,写多读少。原地写写操作:找到老数据所在位置,更新,IO操作,慢。......
  • vue3使用echarts的tree,自己写事件进行分页
    vue3使用echarts的tree,自己写事件进行分页  先到npmjs官网查看当前使用最多的版本https://www.npmjs.com/package/echarts 看了下5.5.0用的最多[email protected] 以下的demo(“@/flare”是后面的flare.json数据)<template><divid="chart-container"></div......
  • CF1709E XOR Tree
    linkSolution:PART1:转化首先套路地预处理出每个节点到根节点(\(1\)号节点)路径上的点权异或和\(w[u]\)。可以发现题意容易转化为:给定一棵\(n\)个节点的树,问你最少可以把它分成多少个联通块,使得每个连通块中的节点两两路径上的异或和不为0。易知对于一个节点,若它要被割......
  • CF771C Bear and Tree Jumps
    题目大意:给定一棵有\(n\)个节点的树,要你统计\(\sum_{1\lex\ley\len}{dist(x,y)/k}\)(\(dist(x,y)\)表示\(x\)到\(y\)的距离)\(n\le2\times10^5,k\le5\)解法:一道换根\(dp\)套路题。首先看到树上统计问题,考虑树形\(dp\),那么我们设\(g(u)\)为以\(......
  • CF911F Tree Destruction
    题目链接:https://www.luogu.com.cn/problem/CF911Fsolution:先求得树的直径,再求得在树的直径上的节点和不在树的直径上的节点。我们考虑优先删除不在直径上的节点,这样不会破坏树的直径,在删完了这些点之后再慢慢删直径上的点。#include<bits/stdc++.h>usingnamespacestd;#def......
  • AGC014D Black and White Trees
    传送门[AGC014D]BlackandWhiteTree给出一颗\(N\)个节点组成的树,每个节点都可以被染成白色或者黑色;有高桥(先手)和青木(后手)两个人————高桥可以把任意一个点染成白色,青木则可以把任意一个点染成黑色,每个点只可染色一次。重复上述操作直到所有点都被染色后,只执行一次执行......
  • 都2024年了,你还不知道git worktree么?
    三年前python大佬吉多·范罗苏姆(为Python程序设计语言的最初设计者及主要架构师)才知道gitworktree,我现在才知道,我觉得没啥丢人的。应用场景如果你正在feature的分支中开发新功能,线上版本紧急错误又需要你基于master做修复。可能有如下几种办法解决:解法1将本......
  • (复习)树上启发式合并(dsu on tree)入门U41492树上数颜色
    主要思想是树的重轻儿子之分使得时间复杂度为o(nlogn),神奇欲深入了解的这里:https://oi-wiki.org/graph/dsu-on-tree/点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedefstructedge//边结构体{intto,next;}EDGE;//边相关数组EDGEe[100001<<1];......
  • UniTreeMenu只展开一个Item,点击主菜单时,不打开最后一个item
    设置:procedureTMainForm.UniTreeMenu1Click(Sender:TObject);varNode:TUniTreeNode;Ts:TUniTabSheet;FrC:TUniFrameClass;Fr:TUniFrame;FClassName,ShowInfo:string;beginNode:=UniTreeMenu1.Selected;ifNode.Tag>1000thenbeginTs:=Node.Data;......