Node.js 26 перешел в LTS: как обновить сайт и CRM

30.10.202610 мин чтения
Мария Григорьева
JS-программистМария Григорьева

28 октября 2026 года ветка Node.js 26 перешла в долгосрочную поддержку — LTS. Первым выпуском с этим статусом стал Node.js 26.13.0 Lithium. Для команд, которые поддерживают сайт, личный кабинет, CRM или интеграционный сервис на Node.js, появился новый вариант рабочей платформы с поддержкой, запланированной до конца апреля 2029 года.

Переход требует проверки приложения: зависимостей, сборки, способа запуска и обмена с внешними системами. Работающий проект на поддерживаемой ветке 22 или 24 может сначала получить актуальные исправления своей ветки, а смену основной версии пройти отдельным релизом. Для Node.js 18 и 20 нужно планировать переход с уже завершившей обычную поддержку платформы.

Ниже — порядок выбора версии, подготовки тестовой среды и приемки обновления. Он рассчитан на разработчика, администратора и технического заказчика. Сведения о релизах проверены 30 октября 2026 года; дальнейшие patch-версии и требования зависимостей следует сверять перед вашей выкладкой.

Что означает переход Node.js 26 в LTS

В официальном анонсе указано: версия 26.13.0 меняет метаданные статуса LTS и не содержит дополнительных изменений относительно 26.12.1. Поэтому именно этот выпуск не следует представлять как новый набор функций или обещание ускорения сайта.

Для проекта практическое изменение — горизонт сопровождения выбранной ветки. Команда может планировать обновления, поддержку библиотек и следующий переход с учетом опубликованного календаря. Сам статус LTS не подтверждает совместимость вашей ORM, фреймворка, драйвера базы или собственного кода.

Проект Node.js рекомендует использовать в production ветки Active LTS или Maintenance LTS. Оба статуса допускают эксплуатацию; решение о конкретной ветке зависит также от требований приложения и плана сопровождения.

Какую версию выбрать на 30 октября 2026 года

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

Ветка Статус на дату проверки Окончание поддержки Действие команды
Node.js 18 EOL, поддержка завершена 30 апреля 2025 года Подготовить переход на поддерживаемую ветку
Node.js 20 EOL, поддержка завершена 30 апреля 2026 года Проверить ограничения зависимостей и запланировать миграцию
Node.js 22 Maintenance LTS 30 апреля 2027 года Ставить актуальные исправления; определить срок следующего перехода
Node.js 24 Maintenance LTS с 20 октября 2026 года 30 апреля 2028 года Поддерживать текущую ветку либо готовить проверенный переход на 26
Node.js 26 Active LTS с 28 октября 2026 года 30 апреля 2029 года Рассматривать для нового проекта и миграции после проверки совместимости

Для действующей CRM выбор начните с ее ограничений. Если критичный драйвер или библиотека официально поддерживает 24, а совместимость с 26 пока не подтверждена, переход на 24 может стать обоснованным промежуточным этапом. Зафиксируйте причину и дату следующей проверки, чтобы временное решение не осталось без владельца.

Обновление безопасности и смена major-версии имеют разный объем. Например, 21 октября 2026 года исправления были выпущены для веток 22, 24 и 26. Получение актуальных исправлений в поддерживаемой ветке не требует автоматически переводить приложение на другую major. Но и такой patch-релиз нужно проверять перед production.

Общий выбор языка, базы и архитектуры разобран в материале об устройстве кастомной CRM. Здесь задача уже: безопасно изменить среду выполнения существующего JavaScript-приложения.

Сначала найдите все процессы, использующие Node.js

На одном сервере могут работать сайт, API, обработчик очереди, бот и задания по расписанию. У них могут различаться версия Node.js, каталог приложения и пользователь запуска. Обновление бинарника в одной SSH-сессии не показывает, под чем продолжает работать каждый сервис.

Составьте короткую ведомость:

Компонент Что записать Зачем это нужно
Сайт или API Версию Node.js, путь к бинарнику, каталог релиза, команду запуска Воспроизвести текущую рабочую конфигурацию
Фоновые обработчики Очереди, расписание, способ завершения задачи Не потерять работу и не запустить ее параллельно дважды
Сборка и CI Версии Node.js и пакетного менеджера, lockfile Сравнивать одинаковые условия сборки
Контейнер Базовый образ и идентификатор собранного образа Подготовить повторяемую выкладку и откат
Менеджер процессов Пользователя, interpreter, рабочий каталог и автозапуск Проверить запуск после обновления и перезагрузки

В выбранной среде можно получить сведения о запущенной команде Node.js:

node -p 'JSON.stringify({node:process.version,execPath:process.execPath,platform:process.platform,arch:process.arch,modules:process.versions.modules,napi:process.versions.napi})'
npm --version
npm pkg get engines

Первый вывод относится к этому вызову node, а не ко всем процессам сервера. engines описывает заявленные ограничения пакета; отсутствие поля не доказывает поддержку любой версии. Проверьте также реально выполняющийся сервис и его конфигурацию. Секреты окружения в общий отчет переносить не требуется.

Проверьте зависимости и окружение Linux

Соберите список компонентов, без которых не выполняется основной сценарий: веб-фреймворк, ORM, драйверы БД, генерация PDF, обработка изображений, криптография, очереди и интеграционные SDK. Для каждого нужны версия, заявленная поддержка Node.js и результат проверки в целевой среде.

Особого внимания требуют нативные расширения. В документации Node.js отмечено, что изменения V8 могут потребовать адаптации и пересборки модулей, использующих его API. Это не означает, что любое расширение обязательно сломается: способ реализации, в том числе использование Node-API, имеет значение. Проверяйте конкретный пакет.

Практический порядок — заново установить зависимости в отдельной сборочной директории под целевой Node.js и ОС. Старый node_modules, скопированный из другого окружения, способен скрыть проблему до первого вызова редко используемой функции. Сам факт запуска сервера такую функцию не проверяет.

Для официальных Linux-бинарников есть отдельная деталь: в анонсе 26.13.0 напоминают о зависимости от libatomic, появившейся начиная с Node.js 25. В некоторых дистрибутивах ее нужно установить отдельно. Проверьте требования выбранного бинарника или образа на тестовой машине; команда установки зависит от ОС.

В список совместимости включите рабочие HTTPS-соединения, сертификаты и прокси. Проверяйте их с прежними требованиями к безопасности: отключение проверки сертификата ради успешного запроса скроет проблему конфигурации.

Соберите отдельный релиз с сохраненным lockfile

Перед экспериментом сохраните текущий рабочий релиз, конфигурацию запуска и сведения о его Node.js. Подготовьте резервные копии данных по правилам проекта и проверьте, кто выполнит восстановление при необходимости. Затем создайте отдельную директорию или тестовый образ для кандидата.

Для npm-проекта с package-lock.json и настроенным скриптом build базовая проверка выглядит так:

# Только в отдельной директории кандидата, не в работающем релизе
node --version
npm --version
npm ci
npm run build

По документации npm, npm ci использует lockfile, завершается ошибкой при его несоответствии package.json и удаляет существующий node_modules перед установкой. Поэтому запускать эту команду в каталоге действующего сервиса рискованно. Сохраните и настройки пакетного менеджера, с которыми создан lockfile.

Если проект использует Yarn или pnpm, применяйте предусмотренную им установку из lockfile и зафиксированную версию менеджера. Не меняйте одновременно runtime, пакетный менеджер и весь набор зависимостей без необходимости: при сбое будет сложнее найти причину.

После установки выполните существующие тесты и production-сборку. Точное имя тестовой команды зависит от проекта. Запустите кандидата на отдельном локальном порту или в тестовом контуре, с разрешенными данными и отключенными реальными рассылками, оплатами и другими внешними действиями.

Для приложения с серверным рендерингом собирайте и запускайте кандидата под согласованной версией Node.js. Генерация новых файлов поверх каталога, который обслуживает рабочий процесс, может смешать старую конфигурацию в памяти с новым результатом сборки. Отдельный релиз упрощает проверку соответствия кода, файлов и процесса.

Что проверить в Docker и PM2

Docker: состав образа и инструмент сборки

В карточке релиза сохраните точный базовый образ и идентификатор полученного образа приложения. Обновление должно быть воспроизводимым: команда должна понимать, какой набор компонентов прошел приемку и какой образ возвращается при откате.

В рекомендациях официальных образов Node.js отмечено, что начиная с Node.js 26 Yarn в них отсутствует. Если сборка рассчитывает на уже установленный yarn, заранее определите, как проект получает нужную версию пакетного менеджера. Проверяйте именно свой образ: пользовательский Dockerfile может добавлять собственные инструменты.

При переходе сохраняйте понятные границы эксперимента. Если одновременно меняются Node.js, семейство Linux-образа и способ установки нативных библиотек, перечислите каждое изменение и проверьте его отдельно. У кандидата должны быть проверены запуск, остановка, доступ к данным и необходимые сетевые соединения.

PM2: исполняемый файл и автозапуск

Для PM2 проверьте приложение по его имени и конфигурационный файл: поля cwd, script и interpreter. В interpreter можно указать абсолютный путь. Это позволяет явно задать, какой Node.js запускает конкретный сервис.

Отдельно проверьте автозапуск после перезагрузки. Документация PM2 требует обновить startup-конфигурацию после обновления локальной версии Node.js. Иначе проверенный ручной запуск и следующий запуск системы могут использовать разные пути.

Изменения выполняйте по плану нужного приложения, с сохранением прежней конфигурации для отката. Общий перезапуск всех процессов не является приемочным тестом одного обновляемого сервиса.

Как принять обновление сайта или CRM

Успешный HTTP-ответ главной страницы — начало проверки. После смены runtime важны те действия, ради которых бизнес использует приложение. Для каждого подготовьте исходные данные, ожидаемый результат и подтверждение выполнения.

Сценарий Что проверить Подтверждение
Публичные страницы Главную, услуги, кейсы, нужные языковые версии Верные HTTP-коды, заголовки, canonical и содержание
Файлы интерфейса Скрипты, стили, изображения и загрузку динамических компонентов Отсутствие ошибок загрузки и смешения файлов релизов
Вход и права Обычного пользователя и роль с ограничениями Доступны свои данные, чужие записи закрыты
Форма обращения Прием, сохранение и последующую доставку Связанный идентификатор заявки и результата в CRM
Обмен и очереди Одну штатную операцию, временный отказ и повтор Результат находится; повтор не создает лишнее действие
Документы и файлы Загрузку, скачивание и генерацию, если предусмотрены Файл открывается, права соблюдаются
Длительные соединения WebSocket или другую используемую связь Событие приходит, восстановление соединения работает
Нагрузка Сопоставимые операции в старой и новой среде Время ответа, ошибки, CPU, память и состояние очередей

Для форм используйте подробные сценарии из статьи об интеграции сайта с CRM. Сообщение в браузере и письмо разработчику не заменяют проверку полного пути обращения.

Не назначайте универсальный допустимый рост задержки или время наблюдения. Согласуйте границы до релиза по текущим показателям и бизнес-сценарию. Если фоновая задача выполняется ночью, несколько минут проверки днем не подтверждают ее работоспособность.

Подготовьте переключение и откат

До выкладки запишите условия остановки выпуска. Например: не проходит вход, нарушена доставка заявок, растет число ошибок согласованного API или зависла очередь. Для каждого условия назначьте наблюдение и ответственного за решение.

План переключения должен включать:

  1. Идентификаторы прежнего и нового релизов, версии Node.js и зависимости.
  2. Подтвержденные результаты приемки кандидата.
  3. Порядок завершения текущих запросов и фоновых операций.
  4. Переключение нужного приложения и повторную проверку через публичный адрес.
  5. Возврат прежнего релиза вместе с его средой выполнения и конфигурацией.
  6. Проверку записей и задач, появившихся в период работы новой версии.

Откат кода не отменяет уже выполненную оплату, отправленное сообщение или изменение данных. Если релиз включает изменения схемы БД, заранее проверьте совместимость старого приложения с новой схемой. Для изменения runtime полезно ограничить объем релиза, чтобы возврат не зависел от нескольких несвязанных преобразований данных.

Готовность к откату проверьте на тестовом контуре до production. Сохраненный архив без инструкции запуска и понятной версии Node.js еще не подтверждает, что прежний сервис удастся восстановить в нужное время. Перенос всего сайта с изменением размещения имеет более широкий состав; для него есть отдельный чек-лист миграции корпоративного сайта.

Что передать исполнителю для оценки работ

Соберите версии Node.js и зависимостей, репозиторий или состав доступных исходников, способ развертывания, перечень процессов, критичные сценарии и ограничения по окну обслуживания. Секреты передавайте отдельно через согласованный канал. Укажите, что уже проверено, а что остается неизвестным.

Попросите разделить обследование, адаптацию зависимостей, тесты, подготовку релиза и сопровождение после переключения. Если совместимость пакета не установлена, эта неопределенность должна быть видна в оценке. Единой стоимости «обновления Node.js» без такого обследования нет.

Совместимость серверной части и интеграций можно обсудить в рамках backend-разработки. Для действующего проекта отдельно согласуйте сопровождение и условия SLA: какие показатели контролируются, кто принимает решение об откате и как команда разбирает ошибку после выпуска.

FAQ

Нужно ли срочно переводить исправно работающий проект с Node.js 24 на 26?

Переход 26 в LTS сам по себе не завершает поддержку 24. Установите актуальные исправления своей поддерживаемой ветки и составьте план миграции с учетом библиотек и срока сопровождения. Срочность конкретного обновления безопасности оценивают по официальному уведомлению и использованию затронутых функций.

Можно ли обновить только Node.js на сервере, оставив старые зависимости?

Такой вариант нужно проверять как отдельный кандидат. Нативные расширения и другие зависимости могут иметь ограничения. Чистая установка из lockfile и тесты в целевой среде дают больше информации, чем перенос прежнего node_modules и проверка одного экрана.

Можно ли гарантировать обновление без простоя?

Это зависит от архитектуры, числа экземпляров, хранения сессий, фоновых задач и способа переключения. Требование непрерывной работы включают в проект заранее и проверяют на тестовом развертывании. По одной версии Node.js такую гарантию дать нельзя.

Нужно ли обновлять Node.js, если сайт состоит из статических файлов?

Проверьте, где он используется. Node.js может участвовать только в сборке; тогда обновляют и проверяют сборочный контур. Если есть SSR, API, обработчик форм или отдельный бот, их среда выполнения требует самостоятельной проверки.

Источники

Материал подготовлен по документации, проверенной 30 октября 2026 года. Матрица приемки и порядок релиза — инженерные рекомендации. Они не описывают выполненную миграцию NBM-IT и требуют адаптации к конкретному приложению.

Оставьте свои контакты — мы перезвоним, разберёмся в задаче и предложим оптимальный путь. За плечами более 350 проектов, каждый из которых мы запускали с индивидуального подхода. Гарантируем экспертную консультацию в рабочее время.