Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+717новых вакансий за сутки·60 871вакансия открыта сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 951
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python9 224
  • Облачные технологии4 076
  • QA вакансии1 588
  • Android1 322
  • Инженер данных805
  • Продакт-менеджер368

Разработка

  • Backend вакансии1 317
  • iOS1 239
  • AI вакансии608
  • Fullstack вакансии523
  • Frontend вакансии456
  • Mobile вакансии28

По стеку

  • Go5 445
  • Java3 175
  • Kotlin1 119
  • Node.js1 026
  • Rust949
  • .NET666
  • PHP311
  • C#210
  • C++204

DevOps и инфраструктура

  • DevOps вакансии2 713
  • Kubernetes2 308
  • Linux-инфраструктура1 890
  • Terraform / IaC1 406
  • CI/CD842
  • Мониторинг и Observability645
  • SRE226
  • Кибербезопасность84

Аналитика и данные

  • Аналитик данных483
  • Data Scientist469
  • Бизнес-аналитик349
  • Системный аналитик48

Другие направления

  • Проджект-менеджер139
  • UI/UX дизайн71
  • Ручное тестирование14

По регионам

  • Вакансии в США24 791
  • Вакансии в Европе9 439
  • Работа в России2 924
  • Вакансии в Канаде2 178

По формату

  • Удалённые вакансии43 505
  • Релокация в США24 791
  • Гибридная работа3 370
  • Офисная работа2 525

По уровню

  • Senior вакансии20 898
  • Middle вакансии12 438
  • Junior вакансии3 864

Сейчас нанимают

Все компании
  • Wise191 вакансия
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Celonis48 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме Next.jsВсе вопросы
Next.jsMiddleТеория

Что такое next.config.js и какие параметры конфигурации наиболее важны?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

next.config.js/ts — корневой файл конфигурации Next.js. Ключевые параметры: images.remotePatterns, redirects/rewrites/headers (async функции), output: 'standalone' для Docker, compiler.removeConsole, experimental.typedRoutes.

next.config.js / next.config.ts

Файл конфигурации next.config.js (или next.config.ts начиная с Next.js 15) находится в корне проекта и позволяет настраивать компилятор, сборку, поведение сервера и многое другое. Экспортируется объект типа NextConfig.

// next.config.ts (Next.js 15+)
import type { NextConfig } from 'next';

const config: NextConfig = {
  // 1. Переменные окружения, доступные на клиенте
  env: {
    APP_VERSION: process.env.npm_package_version,
  },

  // 2. Публичные runtime-переменные (доступны через process.env на клиенте)
  // Альтернатива: префикс NEXT_PUBLIC_ в .env файлах

  // 3. Image Optimization
  images: {
    remotePatterns: [
      {
        protocol: 'https',
        hostname: 'cdn.example.com',
        port: '',
        pathname: '/images/**',
      },
    ],
    formats: ['image/avif', 'image/webp'],
    deviceSizes: [640, 750, 828, 1080, 1200, 1920],
  },

  // 4. Redirects
  async redirects() {
    return [
      {
        source: '/old-jobs',
        destination: '/jobs',
        permanent: true, // 308
      },
      {
        source: '/blog/:slug',
        destination: '/articles/:slug',
        permanent: false, // 307
      },
    ];
  },

  // 5. Rewrites (прокси без смены URL)
  async rewrites() {
    return [
      {
        source: '/api/v1/:path*',
        destination: 'https://api.internal.example.com/:path*',
      },
    ];
  },

  // 6. Headers
  async headers() {
    return [
      {
        source: '/(.*)',
        headers: [
          { key: 'X-Content-Type-Options', value: 'nosniff' },
          { key: 'X-Frame-Options', value: 'DENY' },
          {
            key: 'Content-Security-Policy',
            value: "default-src 'self'; img-src * data:;",
          },
        ],
      },
    ];
  },

  // 7. Webpack customization
  webpack(config, { isServer }) {
    if (!isServer) {
      config.resolve.fallback = { fs: false, net: false };
    }
    config.module.rules.push({
      test: /\.svg$/,
      use: ['@svgr/webpack'],
    });
    return config;
  },

  // 8. Compiler options
  compiler: {
    removeConsole: process.env.NODE_ENV === 'production',
  },

  // 9. Experimental features
  experimental: {
    turbo: {}, // Turbopack для dev (стабилен в 15.3+)
    typedRoutes: true, // типизированные href в Link
    serverActions: { bodySizeLimit: '2mb' },
  },

  // 10. Output mode
  output: 'standalone', // для Docker-деплоя: копирует только нужные зависимости

  // 11. Internationalization (App Router использует собственные механизмы,
  //     i18n в config актуален только для Pages Router)
  // i18n: { locales: ['en', 'ru'], defaultLocale: 'en' },

  // 12. Trailing slash
  trailingSlash: false,

  // 13. Base path (если приложение не в корне домена)
  // basePath: '/app',

  // 14. TypeScript и ESLint
  typescript: {
    ignoreBuildErrors: false, // никогда не ставить true в prod!
  },
  eslint: {
    ignoreDuringBuilds: false,
  },
};

export default config;

output: standalone для Docker

# Dockerfile
FROM node:22-alpine AS builder
WORKDIR /app
COPY . .
RUN npm ci && npm run build

FROM node:22-alpine AS runner
WORKDIR /app
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
EXPOSE 3000
CMD ["node", "server.js"]

Полезные флаги для продакшна

  • output: 'standalone' — уменьшает образ Docker, копируя только необходимые node_modules.
  • compiler.removeConsole — удаляет console.* из клиентского бандла в prod.
  • experimental.typedRoutes — добавляет TypeScript-проверку для всех href в компоненте Link.
  • images.remotePatterns — белый список внешних источников для <Image>; без этого next/image отказывает внешние URL.

Подводные камни

  • typescript.ignoreBuildErrors: true и eslint.ignoreDuringBuilds: true часто ставят «временно» и забывают убрать — в проде пойдут нетипизированные ошибки.
  • Функции redirects(), rewrites(), headers() должны возвращать Promise; синхронный возврат тоже работает, но нарушает типы и может сломаться в будущих версиях.
  • Изменения в next.config.js требуют перезапуска dev-сервера — горячая перезагрузка не применяется к конфигу.
  • При использовании output: 'standalone' файлы из public/ и .next/static нужно копировать вручную — они не включаются в standalone автоматически.
  • env в config встраивает значения во время сборки (build-time); если значение меняется в runtime, оно не применится без пересборки. Для runtime-переменных нужен NEXT_PUBLIC_ через process.env или runtimeConfig.
  • Webpack-конфиг вызывается дважды: для сервера и для клиента. Необходима проверка флага isServer, иначе серверные полифилы попадают в клиентский бандл.
  • Конфликт между rewrites и App Router Route Handlers: если rewrite совпадает с путём существующего Route Handler, обработчик не вызывается.

Частые вопросы на собеседовании

  • Как оптимизировать производительность Next.js-приложения?
  • Что такое React Server Components в Next.js? Чем они отличаются от Client Components?
  • В каких типах frontend-проектов Next.js даёт реальный выигрыш, а где будет избыточен или неудачен?
  • Объясните SSR, SSG, ISR и CSR в Next.js. Когда использовать каждый подход?

Типичные ошибки

  • Ждать, что next.config.js подхватит изменения без перезапуска
  • Полагаться на process.env.X в конфиге, не задав значение на build
  • Ставить CSP без nonce статикой
  • Использовать Pages-овский i18n в App Router

Что проверяет интервьюер

  • Знает основные секции конфига
  • Понимает порядок redirects → middleware → routing
  • Использует output: 'standalone' для Docker
  • Различает experimental и stable опции

Как вы знаете этот вопрос?

Проверить себя по теме Next.js →

Источники

  • https://nextjs.org/docs/app/api-reference/config/next-config-js
  • https://nextjs.org/docs/app/api-reference/config/next-config-js/redirects
  • https://nextjs.org/docs/app/api-reference/config/next-config-js/headers

Связанные темы

Next.jsbuild-tuningdeployment-setupnextjs-config