如何配置Rsbuild将产物输出至已有目录且不清空内容?
Rsbuild 输出产物到已有目录且保留原有内容的配置方案
核心思路
Rsbuild 默认会清空 output.path 指定的目录(由 output.clean: true 控制),要实现将产物输出到已有目录(如 ./public)且保留原有内容,有两种可靠方案,优先推荐第一种:
方案一:将产物输出到目标目录的子文件夹(推荐)
把构建产物放到 ./public 下的子目录(如 dist),既满足“资源嵌套在该目录下”的需求,又不会影响 public 内的原有文件。
在 Rsbuild 配置文件(如 rsbuild.config.js)中添加:
export default { output: { // 指定输出路径为 public 下的 dist 子目录 path: './public/dist', // 若需前端资源引用路径适配这个子目录,可配置 publicPath publicPath: '/dist/' } };
构建后,产物会生成在 ./public/dist 目录中,原 public 内的其他文件完全不受影响。
方案二:直接输出到目标目录根目录,保留指定原有文件
如果必须将产物直接放到 ./public 根目录,可修改 output.clean 配置,精确控制要清理的文件,排除需要保留的内容。
配置示例:
export default { output: { path: './public', clean: { // 清理所有文件,但排除 img 文件夹和 favicon.ico 文件 patterns: ['**/*', '!img/**', '!favicon.ico'] } } };
注意:这种方式需要准确配置排除规则,否则可能残留旧产物或误删重要文件,仅在特殊场景下使用。
内容的提问来源于stack exchange,提问作者Bernard Nandwa
相关产品推荐
相关产品推荐

