vite的优化

186 阅读1分钟

这个配置是一个典型的 Vite 配置文件,整合了 Vue 项目所需的插件和功能。你目前已经集成了 Vue 插件、组件自动注册、Vant 组件库解析、SVG 图标处理、HTML 模板插件和 Mock 服务插件等功能。接下来可以对现有的 Vite 项目进行一些优化,以提高开发效率和构建性能。

1. 开发性能优化

1.1 减少依赖预构建

确保你在开发模式下只预构建必要的依赖,可以通过 optimizeDeps 来控制哪些依赖需要提前构建,减少不必要的处理:

js
复制代码
export default defineConfig({
  // 其他配置项
  optimizeDeps: {
    include: ['vue', 'vant'], // 指定需要预构建的依赖
    exclude: ['your-large-dependency'], // 排除不需要预构建的依赖
  }
})

2. 生产构建优化

2.1 CDN 外部化第三方库

在生产环境下,将常用的第三方库如 Vue、Vant 通过 CDN 引入,减小打包后的体积。你可以在 rollupOptions 里设置 external 参数,并手动引入 CDN:

js
复制代码
export default defineConfig({
  build: {
    rollupOptions: {
      external: ['vue', 'vant'],
      output: {
        globals: {
          vue: 'Vue',
          vant: 'Vant'
        }
      }
    }
  },
  plugins: [
    createHtmlPlugin({
      inject: {
        data: {
          // 这里可以通过 template 注入 CDN 脚本
          injectScript: `<script src="https://cdn.jsdelivr.net/npm/vue@3.2.0"></script>
                         <script src="https://cdn.jsdelivr.net/npm/vant@latest"></script>`
        }
      }
    })
  ]
})

2.2 构建时压缩资源

为了在生产环境中减小打包输出的文件大小,你可以使用 gzip 或 brotli 压缩:

js
复制代码
import viteCompression from 'vite-plugin-compression'

export default defineConfig({
  plugins: [
    viteCompression({ algorithm: 'gzip' })
  ]
})

2.3 动态拆包

通过 Rollup 配置手动分包,将第三方库和业务代码拆分开来,减少主 bundle 的体积:

js
复制代码
export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            return id.toString().split('node_modules/')[1].split('/')[0].toString();
          }
        }
      }
    }
  }
})