vite打包配置优化

vite打包配置(gzip、文件分类等)

安装依赖

npm i vite-plugin-compression -D

vite.config文件完整配置

import compressPlugin from "vite-plugin-compression"; //静态资源压缩
import legacyPlugin from '@vitejs/plugin-legacy'; //浏览器兼容
export default defineConfig({
 plugins: [
    vue(),
    compressPlugin({ //gzip静态资源压缩
      verbose: true,    // 默认即可
      disable: false,  //开启压缩(不禁用),默认即可
      deleteOriginFile: false, //删除源文件
      threshold: 10240, //压缩前最小文件大小
      algorithm: 'gzip',  //压缩算法
      ext: '.gz', //文件类型
    }),
    legacyPlugin({
      targets: ['chrome 52'], // 需要兼容的目标列表,可以设置多个
      additionalLegacyPolyfills: ['regenerator-runtime/runtime'] // 面向IE11时需要此插件
    })
  ],
 // 打包配置
  build: {
    // 清除console和debugger
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true,
      },
    },
    //警报门槛,限制大文件大小
    // chunkSizeWarningLimit: 1500,
    rollupOptions: {
      output: {
        //对静态文件进行打包处理(文件分类)
        chunkFileNames: 'assets/js/[name]-[hash].js',
        entryFileNames: 'assets/js/[name]-[hash].js',
        assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',
      }
    },
  },
})

### Vite 打包配置教程 Vite 是一种现代前端构建工具,支持快速开发和高效的生产环境打包。以下是关于如何通过 `vite.config.js` 配置文件来设置 Vite 进行项目打包的具体方法。 #### 1. 基础配置Vite 中,所有的配置都集中在一个名为 `vite.config.js` 或 `vite.config.ts` 的文件中。以下是一个基础的打包配置示例: ```javascript import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ build: { outDir: 'dist', // 输出目录,默认为 dist assetsInlineLimit: 4096, // 小于此大小的资源会被转为 base64 编码嵌入到最终的 JavaScript 文件中 rollupOptions: { input: './index.html', // 输入入口文件 output: { entryFileNames: 'assets/[name].js', chunkFileNames: 'assets/[name].js', assetFileNames: 'assets/[name].[ext]' } }, minify: 'esbuild', // 使用 esbuild 来压缩代码 (也可以选择 terser) sourcemap: false // 是否生成 source map 文件 }, plugins: [ vue() // Vue 插件用于处理 .vue 单文件组件 ] }); ``` 此部分展示了如何定义输出路径、资产内联限制以及 Rollup 的高级选项[^1]。 #### 2. 多页面应用的支持 如果项目中有多个 HTML 入口,则可以通过调整 `rollupOptions.input` 属性实现多页应用的打包需求。例如: ```javascript rollupOptions: { input: { main: 'index.html', about: 'about/index.html' } } ``` 这样可以分别针对不同的页面进行独立打包[^3]。 #### 3. 生产环境优化 为了提高性能,在生产环境中通常会启用代码分割(Code Splitting)、Tree Shaking 和 Gzip 压缩等功能。这些功能默认由 Vite 提供,但仍可通过自定义进一步增强效果。例如: ```javascript build: { rollupOptions: { treeshake: true, output: { manualChunks(id) { if (id.includes('node_modules')) { return id.toString().split('node_modules/')[1].split('/')[0]; } } } }, brotliSize: true // 启用 Brotli 压缩分析 }, optimizeDeps: { include: ['lodash'] // 显式预编译第三方依赖项 } ``` 上述代码片段说明了如何手动控制模块拆分并提升 Tree Shaking 效果[^5]。 #### 4. 自定义插件集成 除了内置的功能外,还可以利用社区提供的各种插件扩展能力。比如使用 `@vitejs/plugin-legacy` 支持旧版浏览器兼容性或者引入其他特定用途的插件如 `unplugin-vue-components` 自动生成组件导入表单等操作[^4]。 ```javascript import legacyPlugin from '@vitejs/plugin-legacy'; export default defineConfig({ plugins: [ legacyPlugin() ], server: { port: 8080 // 设置本地服务端口号 } }); ``` 以上展示了一个简单例子用来演示如何加载额外插件以满足特殊场景下的业务诉求。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值