next.config.js 配置选项
Next.js 可以通过项目根目录下的 next.config.js
文件进行配置(例如位于 package.json
同级),该文件需要默认导出。
ECMAScript 模块
next.config.js
是常规的 Node.js 模块而非 JSON 文件。它被 Next.js 服务器和构建阶段使用,不会包含在浏览器构建中。
如果需要使用 ECMAScript 模块,可以使用 next.config.mjs
:
须知:目前不支持使用
.cjs
、.cts
或.mts
扩展名的next.config
文件。
函数式配置
您也可以使用函数形式:
异步配置
从 Next.js 12.1.0 开始,可以使用异步函数:
阶段参数
phase
表示加载配置时的当前上下文。您可以查看可用阶段。阶段参数可以从 next/constants
导入:
TypeScript
如果项目中使用 TypeScript,可以使用 next.config.ts
进行配置:
注释行是您可以放置 next.config.js
允许的配置项的位置,这些配置项在此文件中定义。
不过,所有配置都是可选的,您不需要理解每个配置的作用。只需在本节中搜索需要启用或修改的功能,文档会告诉您如何操作。
避免使用目标 Node.js 版本不支持的新 JavaScript 特性。
next.config.js
不会被 Webpack 或 Babel 解析。
本文档记录了所有可用的配置选项:
单元测试(实验性)
从 Next.js 15.1 开始,next/experimental/testing/server
包提供了用于单元测试 next.config.js
文件的工具。
unstable_getResponseFromNextConfig
函数会使用提供的请求信息运行 next.config.js
中的 headers
、redirects
和 rewrites
函数,并返回包含路由结果的 NextResponse
。
unstable_getResponseFromNextConfig
的响应仅考虑next.config.js
字段,不考虑中间件或文件系统路由,因此生产环境的结果可能与单元测试不同。