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

如何在Vite中构建多页面应用并将各页面输出至独立目录?

Vite多页面应用独立目录输出配置方案

你想要的每个页面输出到独立目录是可以实现的,但不能直接把rollupOptions设为数组——Vite的build.rollupOptions只接受单个Rollup配置对象,而非数组。通过配置Rollup的输入输出规则,就能实现页面资源的目录隔离,适配后端路由对应独立静态页面的场景。

正确配置示例

import { defineConfig } from 'vite'
import path from 'path'

export default defineConfig({
  build: {
    rollupOptions: {
      // 配置多页面入口,key为页面标识,value为对应HTML入口路径
      input: {
        page1: path.resolve(__dirname, 'src/page1.html'),
        page2: path.resolve(__dirname, 'src/page2.html')
      },
      output: {
        // 入口JS文件输出到对应页面目录
        entryFileNames: '[name]/[name].js',
        // 拆分的chunk文件(如公共依赖)可按页面或公共目录存放
        // 若想公共资源单独放,可改为 'common/[name]-[hash].js'
        chunkFileNames: '[name]/[name]-[hash].js',
        // 静态资源(CSS、图片、字体等)输出到对应页面目录
        assetFileNames: '[name]/[name]-[hash][extname]'
      }
    }
  }
})

配置说明

  • 构建后,page1的所有资源(入口JS、编译后的CSS、静态资源)会统一输出到dist/page1/目录,page2对应dist/page2/,完全满足页面资源隔离的需求。
  • 如果多个页面存在公共依赖(如Svelte核心库),可以调整chunkFileNames规则,将公共chunk放到dist/common/目录下,避免重复打包。

相关背景

你提到的GitHub议题中,社区用户集中反馈了多页面构建时资源集中存放的痛点,官方最终确认可以通过Rollup的输出命名规则实现目录隔离,无需额外开发插件,直接通过上述配置即可达成需求。

内容的提问来源于stack exchange,提问作者NFern

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:35:20