For AI agents: the complete documentation index is available at https://rsbuild.rs/zh/llms.txt, the full documentation bundle is available at https://rsbuild.rs/zh/llms-full.txt, and this page is available as Markdown at https://rsbuild.rs/zh/config/server/serve-assets.md.
close
  • 简体中文
  • server.serveAssets

    • 类型: boolean
    • 默认值: output.target 为 web 或 web-worker 时为 true,为 node 时为 false

    控制 Rsbuild 的开发服务器和预览服务器是否通过 HTTP 提供构建产物,包括 JavaScript、CSS、HTML 和 source map。

    将此选项设为 false,即可停止通过 HTTP 提供构建产物:

    rsbuild.config.ts
    export default {
      server: {
        serveAssets: false,
      },
    };

    设为 false 不影响编译、文件监听和产物写盘。你仍然可以通过开发服务器的 loadBundle 和 getTransformedHtml API 访问产物。

    你也可以通过 server.setup 添加自定义路由,自行处理构建产物的 HTTP 请求。

    多环境配置

    每个环境继承顶层的 server.serveAssets 配置,也可以单独设置以覆盖顶层配置。两者均未设置时,默认值由该环境的 output.target 决定。

    例如,停止通过 HTTP 提供 Worker 环境的产物,同时继续提供浏览器资源:

    rsbuild.config.ts
    export default {
      environments: {
        web: {
          output: {
            distPath: 'dist/client',
          },
        },
        worker: {
          server: {
            serveAssets: false,
          },
          output: {
            target: 'web-worker',
            distPath: 'dist/worker',
          },
        },
      },
    };

    Public 目录

    Public 目录中的文件由 server.publicDir 管理:

    • 开发模式: 开发服务器独立提供 public 目录中的文件,不受 serveAssets 影响。如需同时停止提供这些文件,请设置 server.publicDir: false。
    • 构建和预览: publicDir.copyOnBuild 仍然控制是否将文件复制到输出目录。预览服务器将复制后的文件视为构建产物,是否提供这些文件由 serveAssets 控制。

    输出目录重叠

    如果多个环境共用输出目录,或输出目录之间存在包含关系,设置了 serveAssets: true 的环境也可能提供 serveAssets: false 环境的文件。

    例如,提供整个 dist 目录的环境也可以提供 dist/worker 中的文件,即使 Worker 环境设置了 serveAssets: false。因此,当环境的 serveAssets 配置不同时,请使用 dist/client 和 dist/worker 这样的独立目录。

    版本历史

    版本变更内容
    v2.3.2新增 server.serveAssets。