open-next.config.ts 中可使用的所有选项都将在此列出。这是可用于自定义构建的配置文件。
你可以查看 完整示例 以了解如何使用这些选项。
这里的服务器指的是所有不同的构建输出(Lambda、Node、Deno 等)。每个服务器都可以有自己的选项。这也包括一些只需要在构建时运行的服务器/函数。
每个服务器配置将在配置对象中拥有自己的键。以下是您可以配置的所有服务器:
- 默认服务器 - 键:
default这是默认服务器,类似于 open-next v2 中的 server-function - 拆分服务器 - 键:
functions仅当您想将服务器拆分为多个服务器时使用。这是一个特殊情况,在此键下您将定义每个拆分的服务器。 - 外部中间件 - 键:
middleware如果您想将中间件与默认服务器或函数分开部署,可以使用此键。 - 重新验证函数 - 键:
revalidate这是一个特殊的服务器,将处理重新验证队列。 - 图片优化服务器 - 键:
imageOptimization此服务器将处理_next/image优化。 - 预热函数 - 键:
warmer此服务器旨在用作 lambda 函数的预热。 - 初始化函数 - 键:
initializationFunction这是一个特殊的服务器,将在构建时运行以初始化缓存。默认情况下,它只初始化标签缓存。
所有这些服务器共享一些通用选项,您可以使用它们来自定义服务器。
minify
这将尝试压缩服务器的输出,包括 node_modules。它是一个布尔值,默认设置为 false。
这可能会导致某些包出现问题,因此建议在部署之前使用此选项测试您的应用。
我们可能不会修复与此选项相关的问题,因为它通常是特定于库的。
override
在这里您将能够覆盖服务器的某些部分。对于所有选项,您可以提供我们称为 LazyLoadedOverride 的内容,这是一个将返回覆盖内容的函数。有关示例,请参阅一些 自定义覆盖。
所有服务器都有一些您可以覆盖的默认覆盖。您可以 在此处 (opens in a new tab) 查看类型。
wrapper
这是服务器的入口点。 请注意,仅更改此选项可能不足以使其在该平台上工作。这只是入口点,您可能需要更改服务器的其他部分才能使其在该平台上工作。
可能的值有:aws-lambda、aws-lambda-streaming、cloudflare-edge、cloudflare-node、node、express-dev、dummy 或一个将返回包装器的 LazyLoadedOverride。
converter
这是将用于转换服务器输入和输出的转换器。
可能的值有:aws-apigw-v2、aws-apigw-v1、aws-cloudfront、edge、node、sqs-revalidate、dummy 或一个将返回转换器的 LazyLoadedOverride。
install
服务器的安装选项。用于安装额外的包。它是一个包含以下选项的对象。
对于图片优化,默认情况下将安装 sharp
packages - 必填
这是将在服务器中安装的包数组。它是一个字符串数组。 在默认服务器(或拆分服务器之一)上安装内容可能需要在 Next 端进行一些额外配置以避免重复
arch
这是服务器的架构。它是一个字符串,默认设置为 x64。
可能的值有:x64、arm64
nodeVersion
此选项将传递给 sharp 的 postinstall 脚本。它由 node-gyp 使用。
libc
覆盖要安装的原生模块的 libc。
可能的值有:glibc、musl
additionalArgs
传递给安装命令 (npm install) 的额外参数。它是一个字符串,将附加到 npm install 命令的末尾。
以下是如何在默认服务器函数上安装带有 ARM64 架构的 sharp 的示例:
import type { OpenNextConfig } from '@opennextjs/aws/types/open-next';
const config = {
default: {
install: {
packages: ['sharp@0.33.5'],
arch: 'arm64',
},
},
} satisfies OpenNextConfig;
export default config;