output.manifest

  • 类型: string | boolean
  • 默认值: false

是否生成 manifest 文件,该文件包含所有构建产物的信息、以及入口模块与构建产物间的映射关系。

output.manifest 设置为 true 时,Rsbuild 会在构建后生成一个 manifest.json 文件。当 output.manifest 的值是一个字符串时,它将作为 manifest 文件的名称或路径。

输出内容

manifest 文件默认输出的结构为:

type FilePath = string;

type ManifestList = {
  entries: {
    /** key 为 entry 名称,对应 Rsbuild 的 source.entry 配置 */
    [entryName: string]: {
      initial?: {
        js?: FilePath[];
        css?: FilePath[];
      };
      async?: {
        js?: FilePath[];
        css?: FilePath[];
      };
      /** 当前 entry 关联的 HTML 页面 */
      html?: FilePath[];
      /** 和当前 entry 相关的其他资源(如 png、svg、source map 等) */
      assets?: FilePath[];
    };
  };
  /** 铺平的所有 assets */
  allFiles: FilePath[];
};

基础示例

添加以下配置来开启:

export default {
  output: {
    manifest: true,
  },
};

当构建完成后,会自动生成 dist/manifest.json 文件:

{
  "allFiles": [
    "/static/css/index.a11cfb11.css",
    "/static/js/index.c586cd5e.js",
    "/index.html",
    "/static/js/index.c586cd5e.js.LICENSE.txt"
  ],
  "entries": {
    "index": {
      "initial": {
        "js": ["/static/js/index.c586cd5e.js"],
        "css": ["/static/css/index.a11cfb11.css"]
      },
      "assets": ["/static/js/index.c586cd5e.js.LICENSE.txt"],
      "html": ["/index.html"]
    }
  }
}

设置路径

output.manifest 可以是一个相对于 dist 目录的路径,比如输出为 dist/static/my-manifest.json

export default {
  output: {
    manifest: './static/my-manifest.json',
  },
};