Установка

Системные требования:

  • Node.js 18.17 или новее.
  • Поддерживаются macOS, Windows (включая WSL) и Linux.

Автоматическая установка

Рекомендуем создавать новое приложение Next.js с помощью create-next-app, который автоматически настроит всё необходимое. Для создания проекта выполните:

Терминал
npx create-next-app@latest

Во время установки вы увидите следующие запросы:

Терминал
Как назвать ваш проект? my-app
Использовать TypeScript? Нет / Да
Использовать ESLint? Нет / Да
Использовать Tailwind CSS? Нет / Да
Использовать директорию `src/`? Нет / Да
Использовать App Router? (рекомендуется) Нет / Да
Настроить псевдонимы импорта (@/*) по умолчанию? Нет / Да
Какой псевдоним импорта использовать? @/*

После ответов create-next-app создаст папку с именем вашего проекта и установит необходимые зависимости.

Если вы новичок в Next.js, ознакомьтесь с документацией по структуре проекта для обзора всех возможных файлов и папок в вашем приложении.

Полезно знать:

  • Next.js теперь включает конфигурацию TypeScript, ESLint и Tailwind CSS по умолчанию.
  • Вы можете использовать директорию src в корне проекта для отделения кода приложения от конфигурационных файлов.

Ручная установка

Для ручного создания приложения Next.js установите необходимые пакеты:

Терминал
npm install next@latest react@latest react-dom@latest

Откройте файл package.json и добавьте следующие scripts:

package.json
{
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  }
}

Эти скрипты соответствуют различным этапам разработки приложения:

  • dev: запускает next dev для старта Next.js в режиме разработки.
  • build: запускает next build для сборки приложения для production.
  • start: запускает next start для запуска production-сервера Next.js.
  • lint: запускает next lint для настройки встроенной конфигурации ESLint в Next.js.

Создание директорий

Next.js использует файловую маршрутизацию, что означает, что маршруты в вашем приложении определяются структурой файлов.

Директория app

Для новых приложений рекомендуем использовать App Router. Этот роутер позволяет использовать последние возможности React и является эволюцией Pages Router на основе отзывов сообщества.

Создайте папку app/, затем добавьте файлы layout.tsx и page.tsx. Они будут отображаться при посещении пользователем корня вашего приложения (/).

Структура папки App

Создайте корневой макет в app/layout.tsx с обязательными тегами <html> и <body>:

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="en">
      <body>{children}</body>
    </html>
  )
}
export default function RootLayout({ children }) {
  return (
    <html lang="en">
      <body>{children}</body>
    </html>
  )
}

Наконец, создайте домашнюю страницу app/page.tsx с начальным содержимым:

export default function Page() {
  return <h1>Hello, Next.js!</h1>
}
export default function Page() {
  return <h1>Hello, Next.js!</h1>
}

Полезно знать: Если вы забудете создать layout.tsx, Next.js автоматически создаст этот файл при запуске сервера разработки командой next dev.

Узнайте больше о использовании App Router.

Директория pages (опционально)

Если вы предпочитаете использовать Pages Router вместо App Router, создайте директорию pages/ в корне проекта.

Затем добавьте файл index.tsx в папку pages. Это будет ваша домашняя страница (/):

export default function Page() {
  return <h1>Hello, Next.js!</h1>
}

Далее добавьте файл _app.tsx в pages/ для определения глобального макета. Узнайте больше о пользовательском файле App.

import type { AppProps } from 'next/app'

export default function App({ Component, pageProps }: AppProps) {
  return <Component {...pageProps} />
}
export default function App({ Component, pageProps }) {
  return <Component {...pageProps} />
}

Наконец, добавьте файл _document.tsx в pages/ для управления начальным ответом сервера. Узнайте больше о пользовательском файле Document.

import { Html, Head, Main, NextScript } from 'next/document'

export default function Document() {
  return (
    <Html>
      <Head />
      <body>
        <Main />
        <NextScript />
      </body>
    </Html>
  )
}

Узнайте больше о использовании Pages Router.

Полезно знать: Хотя вы можете использовать оба роутера в одном проекте, маршруты в app будут иметь приоритет над pages. Рекомендуем использовать только один роутер в новом проекте, чтобы избежать путаницы.

Папка public (опционально)

Создайте папку public для хранения статических ресурсов, таких как изображения, шрифты и т.д. Файлы внутри public могут быть доступны в коде, начиная с базового URL (/).

Запуск сервера разработки

  1. Выполните npm run dev для запуска сервера разработки.
  2. Откройте http://localhost:3000 для просмотра приложения.
  3. Измените файл app/page.tsx (или pages/index.tsx) и сохраните его, чтобы увидеть обновлённый результат в браузере.