全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 6 分钟 ✍️ juanwangdev

代码分割策略

通过配置 manualChunks 自定义代码分割,优化 chunk 体积和加载性能。

基础配置

JavaScript
export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          // 框架单独分包
          vue: ['vue', 'vue-router', 'pinia'],
          // 工具库分包
          utils: ['lodash', 'axios']
        }
      }
    }
  }
})

函数形式配置

JavaScript
export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        manualChunks(id) {
          // node_modules 依赖单独分包
          if (id.includes('node_modules')) {
            return 'vendor'
          }
        }
      }
    }
  }
})

分包策略建议

分包类型包名内容
vendorvendor所有 node_modules
frameworkvue/react框架核心库
utilsutils工具库 lodash/axios
componentscomponents共享组件

注意:分包过多会增加 HTTP 请求,需平衡分包数量和 chunk 体积。

按依赖分组分包

JavaScript
export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            // Vue 相关
            if (id.includes('vue')) return 'vue'
            // React 相关
            if (id.includes('react')) return 'react'
            // 其他依赖
            return 'vendor'
          }
        }
      }
    }
  }
})

动态导入分割

JavaScript
// 路由级懒加载
const routes = [
  {
    path: '/about',
    component: () => import('./views/About.vue')
  }
]

动态导入自动创建独立 chunk,按需加载。

分包效果验证

Bash
# 构建后查看产物
npm run build

# 输出类似
dist/assets/vue-xxx.js      50 kB
dist/assets/vendor-xxx.js   100 kB
dist/assets/index-xxx.js    20 kB

分包配置选项

JavaScript
output: {
  manualChunks: {
    // 对象形式:固定分包
    vendor: ['vue', 'axios']
  },
  // 或函数形式:动态分包
  manualChunks(id) {
    // 自定义逻辑
  }
}

要点总结

  • manualChunks 配置分包策略
  • 框架核心单独分包优化缓存
  • 动态导入自动创建 chunk
  • 分包需平衡数量与体积

📝 发现内容有误?点击此处直接编辑

← 上一篇 Source Map 生成策略
下一篇 → 压缩配置优化
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库