Next.js 可以通过项目目录根(例如,package.json
旁边)的 next.config.js
文件进行配置,默认导出。
js
// @ts-check
/** @type {import('next').NextConfig} */
const nextConfig = {
/* 配置选项在这里 */
}
module.exports = nextConfig
next.config.js
是一个常规的 Node.js 模块,而不是一个 JSON 文件。它被 Next.js 服务器和构建阶段使用,并且不会被包含在浏览器构建中。
如果你需要 ECMAScript 模块,你可以使用 next.config.mjs
:
js
// @ts-check
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* 配置选项在这里 */
}
export default nextConfig
你也可以使用一个函数:
js
// @ts-check
export default (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* 配置选项在这里 */
}
return nextConfig
}
自 Next.js 12.1.0 起,你可以使用一个异步函数:
js
// @ts-check
module.exports = async (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* 配置选项在这里 */
}
return nextConfig
}
phase
是配置加载的当前上下文。你可以查看 可用的阶段。阶段可以从 next/constants
导入:
js
// @ts-check
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')
module.exports = (phase, { defaultConfig }) => {
if (phase === PHASE_DEVELOPMENT_SERVER) {
return {
/* 仅开发环境的配置选项在这里 */
}
}
return {
/* 除开发环境外所有阶段的配置选项在这里 */
}
}
注释行是你放置 next.config.js
允许的配置的地方,这些配置 在此文件中定义。
然而,并不要求所有的配置,也没有必要理解每个配置的作用。相反,搜索你需要启用或修改的功能,它们会告诉你该怎么做。
避免使用在目标 Node.js 版本中不可用的新 JavaScript 特性。
next.config.js
不会被 Webpack、Babel 或 TypeScript 解析。
本页面记录了所有可用的配置选项: