分包策略

26 年 1 月 20 日 星期二
202 字
2 分钟

不分包,自动分包,手动分包

模式效果
不分包所有模块打成 一个 bundle,一次性加载
自动分包构建器以 import() 为边界 自动拆 chunk
手动分包人为指定 哪些模块必须进同一个 chunk

一、不分包(Single Bundle,只 1 个 JS)

text
dist/
├─ index.html
└─ assets/
   └─ index-9f3a21.js

含义:所有页面代码 + 所有依赖一次性进这一个文件。


二、自动分包(Automatic Code Splitting,多路由 chunk + 自动公共 chunk)

text
dist/
├─ index.html
└─ assets/
   ├─ index-a12bc3.js        # 主入口
   ├─ Home-3d91f2.js         # Home 路由 chunk(import())
   ├─ User-8a72cc.js         # User 路由 chunk(import())
   ├─ Report-4f3b10.js       # Report 路由 chunk(import())
   └─ vendor-6c91aa.js       # 公共依赖 chunk(如 lodash/axios,自动抽取)

三、手动分包(Manual Code Splitting)

配置

json
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          react: ["react", "react-dom", "react-router-dom"],
        },
      },
    },
  },
})

dist

text
dist/
├─ index.html
└─ assets/
   ├─ index-e72c19.js
   ├─ react-2f18aa.js

文章标题:分包策略

文章作者:Sirui Chen

文章链接:https://blog.siruichen.me/posts/%E5%88%86%E5%8C%85%E7%AD%96%E7%95%A5[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。