rax-app icon indicating copy to clipboard operation
rax-app copied to clipboard

[Enhance] Rax SSR 包体积优化

Open fengzilong opened this issue 3 years ago • 5 comments

  • 移除 useEffect 等在服务端不执行的代码,再移除无用的 import
  • 增加用户配置,修改构建 SSR 时 @babel/preset-env 插件中 targets.node 版本,减少 babel 的语法转换
  • 实际使用中,部分场景 platform-loader 没有生效

fengzilong avatar Jun 09 '21 11:06 fengzilong

SSR 的包体积极致优化的目的是?

SoloJiang avatar Jun 09 '21 12:06 SoloJiang

babel 语法转化这个对构建速度的影响应该也还好,目前只编译源码不会编译 node_modules,你指的是更高级语法对性能更好?如果业务有自己的诉求可以在 build.json 配置:https://rax.js.org/docs/guide/build-config#browserslist

SoloJiang avatar Jun 09 '21 13:06 SoloJiang

platform-loader 这个可以参考「跨端三方包研发规范」这个 RFC

SoloJiang avatar Jun 09 '21 13:06 SoloJiang

babel 语法转化这个对构建速度的影响应该也还好,目前只编译源码不会编译 node_modules,你指的是更高级语法对性能更好?如果业务有自己的诉求可以在 build.json 配置:rax.js.org/docs/guide/build-config#browserslist

关于这点我又想了一下,node 的 targets 和 web 的 targets 得允许用户单独配置,不然 node 的 targets 会影响 web

fengzilong avatar Jun 09 '21 13:06 fengzilong

使用 "Modern JavaScript" 对体积和性能的影响可以参考这里

snapshot

原文:Publish, ship, and install modern JavaScript for faster applications

fengzilong avatar Jun 09 '21 14:06 fengzilong