... о версии Node.js на хостинге
судя по всему, по умолчанию система ставит Node 20.. и package ей не указ. по крайней мере, я не нашел способов изменить это. есть способы ставить версии новее?
судя по всему, по умолчанию система ставит Node 20.. и package ей не указ. по крайней мере, я не нашел способов изменить это. есть способы ставить версии новее?
Нет, откуда вы это взяли ? По умолчанию стоит 24, но он смотрит вашу, может у вас остальные пакеты старые, которые только с 20 работают ? Если npm стоит старый, 9 или 10 он не даст установить node 24, проверьте локально, все библиотеки
Проверьте Dokerfile или смените сборщик на next в настройках проекта Для generic docker-типа сборки (не next/nuxt) логика чуть проще — форс на 20 срабатывает, только если engines.node точно равен "20": bash[ -f package.json ] && [ "$(jq -r '.engines.node // empty' package.json)" == "20" ] Просто пропишите в package.json проекта: json"engines": { "node": "22" }
Node 20 — это не жёсткий дефолт, а частый случай
Логика выбора образа для Next/Nuxt (и для generic docker-сборки) такая:
bashNODE_MAJOR="24" # в (28).yml — либо "22" в v2 (11).yml
if [ -f package.json ]; then
ENGINES_NODE=$(jq -r '.engines.node // empty' package.json)
if [ -n "$ENGINES_NODE" ]; then
DETECTED=$(echo "$ENGINES_NODE" | grep -oE '[0-9]+' | head -1)
if [ "$DETECTED" -ge 18 ]; then
if [ "$BUILDER_TYPE" = "next" ] && [ "$DETECTED" -lt 20 ]; then
NODE_MAJOR="20" # ← принудительный подъём, т.к. Next.js требует >=20
else
NODE_MAJOR="$DETECTED"
fi
fi
fi
fi
NODE_IMG="node:${NODE_MAJOR}-alpine"
Спасибо, что откликнулись. У меня локально в dev установлен Node 22.14.0, pnpm -11.6.0. не самые модные, но вполне. При сборке докерфайла система упорно ставила Node 20 (хотя в package была прописана актуальная версия). Соответственно, т.к. pnpm 11.6 с Node 20 не работает, деплой падал, пока в package не зажал pnpm 9.15.4 Такой вот даунгрейд. И да, докерфайл не мой - доверился вашей системе.