[{"data":1,"prerenderedAt":272},["ShallowReactive",2],{"journal:\u002Fjournal\u002Fbun-nuxt4-runtime-guide":3},{"id":4,"title":5,"author":6,"body":7,"coverImage":256,"date":257,"description":258,"draft":259,"extension":260,"galleryImage":256,"h1":5,"label":261,"meta":262,"navigation":263,"order":106,"path":264,"seo":265,"stem":266,"tags":267,"__hash__":271},"journal\u002Fjournal\u002Fbun-nuxt4-runtime-guide.mdc","Bun и Nuxt 4 в продакшене","Beneric",{"type":8,"value":9,"toc":249},"minimark",[10,14,19,53,57,60,75,78,82,125,128,142,149,166,170,177,228,235,239,242,245],[11,12,13],"p",{},"Bun ускоряет установку пакетов, умеет запускать TypeScript без лишних шагов и хорошо подходит для локальной сборки Nuxt-проектов. Но в продакшене важнее не обещанная скорость, а предсказуемость.",[15,16,18],"h2",{"id":17},"где-bun-уже-полезен","Где Bun уже полезен",[20,21,22,30,41,47],"ol",{},[23,24,25,29],"li",{},[26,27,28],"strong",{},"Установка зависимостей"," — обычно заметно быстрее npm и yarn.",[23,31,32,35,36,40],{},[26,33,34],{},"Скрипты проекта"," — ",[37,38,39],"code",{},"bun run"," хорошо работает для typecheck, build и generate.",[23,42,43,46],{},[26,44,45],{},"Единый инструмент"," — пакетный менеджер, рантайм и запускатор команд в одном бинарнике.",[23,48,49,52],{},[26,50,51],{},"CI и деплой"," — меньше накладных расходов, если вся команда использует один набор команд.",[15,54,56],{"id":55},"где-нужна-осторожность","Где нужна осторожность",[11,58,59],{},"Nuxt 4 поддерживает Bun, но поддержка не равна полной совместимости со всеми модулями. Особенно внимательно проверяем:",[61,62,63,66,69,72],"ul",{},[23,64,65],{},"серверные зависимости с нативными бинарниками;",[23,67,68],{},"SQLite и пакеты вокруг Nuxt Content;",[23,70,71],{},"WebSocket\u002FHMR в dev-режиме;",[23,73,74],{},"интеграции, которые ожидают Node.js API.",[11,76,77],{},"Если проект зависит от спорной нативной библиотеки, сначала собираем минимальный прототип и прогоняем production build.",[15,79,81],{"id":80},"базовая-схема-для-nuxt","Базовая схема для Nuxt",[83,84,89],"pre",{"className":85,"code":86,"language":87,"meta":88,"style":88},"language-bash shiki shiki-themes github-light github-dark","bun install\nbun run typecheck\nbun run build\n","bash","",[37,90,91,104,115],{"__ignoreMap":88},[92,93,96,100],"span",{"class":94,"line":95},"line",1,[92,97,99],{"class":98},"sScJk","bun",[92,101,103],{"class":102},"sZZnC"," install\n",[92,105,107,109,112],{"class":94,"line":106},2,[92,108,99],{"class":98},[92,110,111],{"class":102}," run",[92,113,114],{"class":102}," typecheck\n",[92,116,118,120,122],{"class":94,"line":117},3,[92,119,99],{"class":98},[92,121,111],{"class":102},[92,123,124],{"class":102}," build\n",[11,126,127],{},"Для разработки чаще достаточно обычного режима:",[83,129,131],{"className":85,"code":130,"language":87,"meta":88,"style":88},"bun run dev\n",[37,132,133],{"__ignoreMap":88},[92,134,135,137,139],{"class":94,"line":95},[92,136,99],{"class":98},[92,138,111],{"class":102},[92,140,141],{"class":102}," dev\n",[11,143,144,145,148],{},"Флаг ",[37,146,147],{},"--bun"," стоит включать только осознанно, когда вы действительно хотите запускать Nuxt CLI через Bun runtime:",[83,150,152],{"className":85,"code":151,"language":87,"meta":88,"style":88},"bun --bun run dev\n",[37,153,154],{"__ignoreMap":88},[92,155,156,158,162,164],{"class":94,"line":95},[92,157,99],{"class":98},[92,159,161],{"class":160},"sj4cs"," --bun",[92,163,111],{"class":102},[92,165,141],{"class":102},[15,167,169],{"id":168},"продакшен-рантайм","Продакшен-рантайм",[11,171,172,173,176],{},"Если приложение использует Bun-специфичные API, например ",[37,174,175],{},"bun:sqlite",", нужно явно собирать Nitro под Bun:",[83,178,182],{"className":179,"code":180,"language":181,"meta":88,"style":88},"language-ts shiki shiki-themes github-light github-dark","export default defineNuxtConfig({\n  nitro: {\n    preset: \"bun\",\n  },\n})\n","ts",[37,183,184,200,205,216,222],{"__ignoreMap":88},[92,185,186,190,193,196],{"class":94,"line":95},[92,187,189],{"class":188},"szBVR","export",[92,191,192],{"class":188}," default",[92,194,195],{"class":98}," defineNuxtConfig",[92,197,199],{"class":198},"sVt8B","({\n",[92,201,202],{"class":94,"line":106},[92,203,204],{"class":198},"  nitro: {\n",[92,206,207,210,213],{"class":94,"line":117},[92,208,209],{"class":198},"    preset: ",[92,211,212],{"class":102},"\"bun\"",[92,214,215],{"class":198},",\n",[92,217,219],{"class":94,"line":218},4,[92,220,221],{"class":198},"  },\n",[92,223,225],{"class":94,"line":224},5,[92,226,227],{"class":198},"})\n",[11,229,230,231,234],{},"Если Bun нужен только как пакетный менеджер и runner для сборки, ",[37,232,233],{},"node-server"," остаётся более универсальным вариантом для хостингов, где окружение заранее настроено под Node.js.",[15,236,238],{"id":237},"практическое-правило","Практическое правило",[11,240,241],{},"Мы используем Bun там, где он снижает трение: установка, локальные команды, CI-сборка. Для серверного рантайма выбираем Bun только после проверки конкретных модулей, логов и деплой-платформы.",[11,243,244],{},"Такой подход даёт скорость без лишнего риска: проект быстрее собирается, но не становится зависимым от экспериментального поведения в критичном месте.",[246,247,248],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":88,"searchDepth":106,"depth":106,"links":250},[251,252,253,254,255],{"id":17,"depth":106,"text":18},{"id":55,"depth":106,"text":56},{"id":80,"depth":106,"text":81},{"id":168,"depth":106,"text":169},{"id":237,"depth":106,"text":238},null,"2026-01-15","Короткая практическая заметка о том, где Bun помогает Nuxt 4-проекту, а где безопаснее оставить Node.js.",false,"mdc","Bun + Nuxt 4",{},true,"\u002Fjournal\u002Fbun-nuxt4-runtime-guide",{"title":5,"description":258},"journal\u002Fbun-nuxt4-runtime-guide",[99,268,269,270],"nuxt","runtime","performance","3r8cQURPepkiWPd5y9PJPY2NkToAImeJ4t-Jjf2ef5s",1782692744022]