Настройки next.config.js
Next.js можно настроить через файл next.config.js
в корневой директории вашего проекта (например, рядом с package.json
) с помощью экспорта по умолчанию.
// @ts-check
/** @type {import('next').NextConfig} */
const nextConfig = {
/* здесь указываются параметры конфигурации */
}
module.exports = nextConfig
next.config.js
— это обычный модуль Node.js, а не JSON-файл. Он используется сервером Next.js на этапах сборки и разработки, но не включается в сборку для браузера.
Если вам нужны модули ECMAScript, вы можете использовать next.config.mjs
:
// @ts-check
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* здесь указываются параметры конфигурации */
}
export default nextConfig
Также можно использовать функцию:
// @ts-check
export default (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* здесь указываются параметры конфигурации */
}
return nextConfig
}
Начиная с Next.js 12.1.0, можно использовать асинхронную функцию:
// @ts-check
module.exports = async (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* здесь указываются параметры конфигурации */
}
return nextConfig
}
phase
— это текущий контекст, в котором загружается конфигурация. Вы можете увидеть доступные фазы. Фазы можно импортировать из next/constants
:
// @ts-check
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')
module.exports = (phase, { defaultConfig }) => {
if (phase === PHASE_DEVELOPMENT_SERVER) {
return {
/* параметры конфигурации только для разработки */
}
}
return {
/* параметры конфигурации для всех фаз, кроме разработки */
}
}
Закомментированные строки — это место, куда можно добавить параметры, разрешённые в next.config.js
, которые определены в этом файле.
Однако ни один из параметров не является обязательным, и нет необходимости понимать, что делает каждый из них. Вместо этого найдите в этом разделе функции, которые вам нужно включить или изменить, и вы увидите, как это сделать.
Избегайте использования новых возможностей JavaScript, которые недоступны в вашей версии Node.js.
next.config.js
не обрабатывается Webpack, Babel или TypeScript.
На этой странице описаны все доступные параметры конфигурации: