fescover
V2EX  ›  问与答

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

  •  
  •   fescover · Mar 9, 2023 via Android · 2114 views
    This topic created in 1184 days ago, the information mentioned may be changed or developed.
    用 vite 打包默认打出来只有一个集成的 js ,使用 lighthouse 加载总时间 385ms ,使用 vite 配置 buildOptions 拆包后,把安装的第三方包全部拆出来,lighthouse 加载时间 484ms ,反而变长了,分析了一下原因,第二网络请求数量增多了,第二拆出来的 js 有很多相同的模板代码。那在前端项目打包上生产环境时,到底应不应该拆包呢,拆包反而影响性能?
    4 replies    2023-03-09 17:06:33 +08:00
    tool2d
        1
    tool2d  
       Mar 9, 2023
    让我拆包的唯一诉求就是按需加载。

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

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

    拆出来肯定有额外的代价 所以包不是越多越好
    DKburNIng
        3
    DKburNIng  
       Mar 9, 2023
    拆大的第三方包就好了,一般大的就那么两个
    Blackricky
        4
    Blackricky  
       Mar 9, 2023
    三方包有 cdn 的走 cdn ,vite 配置一下 viteExternalsPlugin 。业务代码可以就放在一个包里。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1081 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:24 · PVG 07:24 · LAX 16:24 · JFK 19:24
    ♥ Do have faith in what you're doing.