Vite build配置output.dir无效还是输出到dist目录怎么办?
我在vite.config.js里设置了build.rollupOptions.output.dir = 'public/build',但打包后文件还是生成在默认的dist目录,这是为什么?
尝试过直接修改build.outDir能生效,但需要单独配置rollup输出路径。以下是完整配置:
import { defineConfig } from 'vite'
export default defineConfig({
build: {
rollupOptions: {
output: {
dir: 'public/build', // 这个配置没生效
format: 'es'
}
},
outDir: 'dist' // 如果注释这行,输出路径变成dist/index.html
}
})
控制台没有报错,但访问/public/build提示404,文件实际在dist目录里。是不是配置层级有问题?
rollupOptions.output.dir的理解上。Vite 的build.rollupOptions是用来覆盖 Rollup 的默认配置的,但 Vite 本身有自己的输出目录逻辑,优先级高于 Rollup 的 output 配置。所以即使你在rollupOptions.output.dir里设置了路径,Vite 还是会按照outDir的值来决定最终的输出目录。直接修改
build.outDir才是正确的做法。Vite 不会去读取rollupOptions.output.dir来改变最终的打包路径,这个配置更多是用来控制 Rollup 内部的行为,而不是 Vite 的全局行为。如果你需要把文件输出到
public/build,就这么改:保存后重新运行
vite build,文件就会正确输出到public/build了。至于为什么访问/public/build提示 404,检查一下你的服务器配置,确保静态资源路径是对的,可能是服务器没正确映射public文件夹。