V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fescover
V2EX  ›  问与答

前端打包到底应不应该拆包?

  •  
  •   fescover · 2023-03-09 12:57:50 +08:00 via Android · 1261 次点击
    这是一个创建于 407 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用 vite 打包默认打出来只有一个集成的 js ,使用 lighthouse 加载总时间 385ms ,使用 vite 配置 buildOptions 拆包后,把安装的第三方包全部拆出来,lighthouse 加载时间 484ms ,反而变长了,分析了一下原因,第二网络请求数量增多了,第二拆出来的 js 有很多相同的模板代码。那在前端项目打包上生产环境时,到底应不应该拆包呢,拆包反而影响性能?
    4 条回复    2023-03-09 17:06:33 +08:00
    tool2d
        1
    tool2d  
       2023-03-09 13:02:07 +08:00
    让我拆包的唯一诉求就是按需加载。

    服务器要走 br 压缩,肯定是单个大文件压缩效率更高。
    yyfearth
        2
    yyfearth  
       2023-03-09 13:12:40 +08:00
    @tool2d 主要是按需加载 减少第一次加载的时间
    另外如果 js 太大 也要拆
    如果包比较多 必须开启 http2 才有意义 否则可能会更慢
    另外一定要开 gz 甚至 br 压缩

    另外拆包还有一个好处 尤其是第三方包
    就是可以长期缓存(文件名一定要加 hash )
    这样一般情况下 新版本发布后 用户只要下载有变化的包

    拆出来肯定有额外的代价 所以包不是越多越好
    DKburNIng
        3
    DKburNIng  
       2023-03-09 16:35:03 +08:00
    拆大的第三方包就好了,一般大的就那么两个
    Blackricky
        4
    Blackricky  
       2023-03-09 17:06:33 +08:00
    三方包有 cdn 的走 cdn ,vite 配置一下 viteExternalsPlugin 。业务代码可以就放在一个包里。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5198 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:27 · PVG 15:27 · LAX 00:27 · JFK 03:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.