这两天帮业务代码优化 JS 产物体积,不得不说做 sdk 产物优化和业务产物优化完全是两回事。

写 sdk 时扣各种细节防止 benchmark 劣化,业务上可能加个需求就引入一个巨型lib(比如 echarts,threejs 等),还有各种满天飞的副作用和重复打包导致的 tree shaking 失效。不过也能理解,毕竟开发时间就放在哪里,完成需求是第一位的。

后者的体积优化,首先是抓大放小,先把体积大的 lib 减小 or 去掉,一般根据依赖关系,一些小的依赖也会顺势减少。

另一个是副作用的治理,把有副作用的lib和纯函数 lib 要做物理文件上的隔离,不要一个 index.js 文件把两类 lib 聚合在一起,这样往往是 tree shaking 直接失效,再迭代几版经手几个人,未来就没几个人敢动了。

总而言之,sdk 体积优化更依赖写法,业务代码更注重依赖关系的治理,两者一起努力才能早日实现碳中和目标。 #前端开发现状#
展开
卤代烃于2023-07-06 03:37发布的图片
2