nextjs 中的 _buildManifest.js 是做什么的,可以禁用吗?

Tit*_*ake 7 next.js

我们正在使用 NextJS 构建一个网站,并注意到在我们网站的源代码中,我们可以找到一个_buildManifest.js文件,其中似乎列出了我们网站上当前定义的所有页面。我们希望这种事不要发生。

  1. 该文件是如何_buildManifest.js创建的,它有什么作用?
  2. 它如何拉入页面列表?
  3. 有没有办法禁用它的创建,如果这样做会破坏什么?

Tit*_*ake 3

我们自己解决了这个问题,在这里更新。

  1. 构建清单似乎是一个自动生成的文件,其中包含 url 到 webpack 生成的静态 JS 块的映射。这主要用于 next/link 组件的客户端导航,该组件除其他功能外,还根据 href 属性在悬停时急切地加载 JS。
  2. 这项工作是由此处定义的 webpack 插件完成的,该插件从 webpack 中获取所有 url 并生成 JS 块,并生成一个 JSON 文件。
  3. 从 Next v10 开始,覆盖此 webpack 插件并通过白名单过滤输出似乎可行;唯一观察到的副作用是,单击这些链接必须通过普通组件<a href>而不是下一个/链接组件来完成,这会禁用客户端导航。这可能会导致页面导航速度稍慢(悬停时不会急切加载客户端 JS),但确实允许隐藏公共可见端点的 URL。