知海

ManifestPlugin 插件

webpackjsorg-main插件参考

ManifestPlugin 插件

自 webpack 5.103.0+ 起可用。

内置的 ManifestPlugin 会为你的构建生成一份资源 manifest。移植自 WebpackManifestPlugin

webpack.config.js

js 复制代码
new webpack.ManifestPlugin({
  // options...
});

选项

entrypoints

boolean = true

启用 manifest 中 entrypoints 部分的生成。

entrypoints 启用且某个入口使用了 dependOn

webpack.config.js

js 复制代码
export default {
  entry: {
    entry1: {
      import: "./src/file_1.js",
      dependOn: "entry2",
    },
    entry2: "./src/file_2.js",
  },
  plugins: [
    new webpack.ManifestPlugin({
      filename: "manifest.json",
    }),
  ],
};

生成的 manifest 将包含父/子关系映射

manifest.json

json 复制代码
{
  "entrypoints": {
    "entry1": {
      "imports": ["entry1.js"],
      "parents": ["entry2"]
    },
    "entry2": {
      "imports": ["entry2.js"]
    }
  }
}

filename

string = manifest.json

指定输出文件在磁盘上的文件名。默认情况下,插件会在 output.path 目录内生成 manifest.json

filter

(item: ManifestItem) => boolean

允许过滤构成 manifest 的文件。

generate

function (manifest: ManifestObject) => ManifestObject

接收 manifest 对象,对其进行修改,并返回修改后的 manifest。

prefix

string = "[publicpath]"

为 manifest 中的所有 key 指定路径前缀。

serialize

function (manifest: ManifestObject) => string = (manifest) => JSON.stringify(manifest, null, 2)

接收 manifest 对象并返回 manifest 字符串。

使用 serialize 输出其他格式,例如 YAML:

js 复制代码
new webpack.ManifestPlugin({
  serialize(manifest) {
    return YAML.stringify(manifest, 4);
  },
});

帮助我们改进文档

发现翻译问题或内容错误?请告诉我们。