You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vite多入口打包配置:如何将各入口资源归置到对应文件夹?

Vite多入口打包:每个入口资源独立存放配置方案

Vite完全支持这种每个入口的HTML、脚本、样式及资源都存放在独立文件夹的打包策略,只需调整Rollup的输出配置即可实现目标结构。

修改后的vite.config.ts配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath, URL } from 'node:url'

export default defineConfig({
  plugins: [vue()],
  build: {
    rollupOptions: {
      input: {
        order: fileURLToPath(
          new URL("./src/views/Order/index.html", import.meta.url)
        ),
        catalog: fileURLToPath(
          new URL("./src/views/Catalog/index.html", import.meta.url)
        ),
        shops: fileURLToPath(
          new URL("./src/views/Shops/index.html", import.meta.url)
        ),
      },
      output: {
        dir: "dist-chunk",
        // 入口JS文件输出到对应入口文件夹
        entryFileNames: '[name]/[name].js',
        // 代码分割的chunk文件输出到对应入口文件夹(带hash防缓存)
        chunkFileNames: '[name]/[name]-[hash].js',
        // 样式、图片等资源文件输出到对应入口文件夹(带hash防缓存)
        assetFileNames: '[name]/[name]-[hash].[ext]',
      },
    },
  },
})

关键配置说明

  • entryFileNames:控制入口JavaScript文件的输出路径,[name]会自动替换为你定义的入口名称(如order、catalog),最终生成order/order.js这类路径。
  • chunkFileNames:处理代码分割产生的异步chunk文件,确保它们也存放在对应入口的文件夹下,添加[hash]是为了解决浏览器缓存问题。
  • assetFileNames:将样式、图片、字体等静态资源统一输出到对应入口的文件夹,同样通过[hash]避免缓存冲突。

打包完成后,你会得到如下结构:

dist-chunk/
├── order/
│   ├── index.html
│   ├── order.js
│   ├── order-[hash].css
│   └── order-[hash].png(如果有资源)
├── catalog/
│   ├── index.html
│   ├── catalog.js
│   └── catalog-[hash].css
└── shops/
    ├── index.html
    ├── shops.js
    └── shops-[hash].css

内容的提问来源于stack exchange,提问作者Евгений Петров

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:05:23