Node.js

Wykrywany na podstawie package.json. npm, yarn, pnpm lub bun według pliku lockfile.

Przewodniki wdrożeniowe krok po kroku: Node.js, Next.js, Nuxt, SvelteKit, Astro.

Na stronie Buildpacksopisano wykrywanie i zasady doboru wersji. Jeśli repozytorium zawiera też statyczny frontend, ten buildpack go buduje, a następnie buildpack staticserwuje jego pliki.

Wykrywanie

package.json w Base directory.

Wersje

Domyślnie używany jest Node.js 24. Linie wydań dostępne we wrześniu 2026: 22, 24, 25, 26. Otrzymasz najnowszą wersję poprawkową wybranej wersji minor.

Przypinanie wersji, w tej kolejności:

  • .node-version
  • .nvmrc
  • engines.node w package.json (zakres taki jak ^22 wybiera najwyższą pasującą opublikowaną wersję)

Początkowe v jest usuwane.

Instalacja i build

Lockfile decyduje o menedżerze pakietów: najpierw bun.lock lub bun.lockb (albo "packageManager": "bun@…" w package.json), potem pnpm-lock.yaml, potem yarn.lock, a w pozostałych przypadkach npm. Lockfile jest wymagany (npm ci lub instalacja frozen). Bez niego build się nie powiedzie.

Jeśli package.json ma skrypt build, zostanie on uruchomiony (bun run build dla Bun, w pozostałych przypadkach npm run build). Następnie uruchamiany jest skrypt heroku-postbuild, jeśli istnieje. Zależności deweloperskie (dev dependencies) są usuwane z obrazu uruchomieniowego (run image), z wyjątkiem aplikacji Next.js, które startują z next.config.* w TypeScript (te zachowują typescript przy uruchomieniu).

Yarn i pnpm działają przez Corepack. Bun jest instalowany z mirrora binariów Nodion (nie z bun.sh w czasie buildu aplikacji) i pozostaje w PATH przy uruchomieniu, więc skrypt startowy wywołujący bun działa. Domyślnym procesem nadal jest skrypt startowy lub node, bez przepisywania na Bun. Przy uruchomieniu ustawiane jest NODE_ENV=production, a node_modules/.bin trafia do PATH.

Polecenie startowe

Stosowane jest pierwsze pasujące polecenie:

  1. Skrypt start w package.json
  2. Domyślne polecenie znanego frameworka SSR (zobacz niżej)
  3. node server.js, index.js lub app.js, jeśli taki plik istnieje
  4. node .

Możesz je nadpisać w Procfile. Twoja aplikacja musi nasłuchiwać na PORT.

Frameworki

  • Next.js: next start, chyba że ustawiono output: 'export', co daje stronę statyczną (out/).
  • Nuxt: node .output/server/index.mjs
  • SvelteKit: statycznie z adapter-static (build/) lub node build z adapter-node
  • Remix / React Router: npx remix-serve ./build/server/index.js
  • Astro: statyczny dist/ lub node ./dist/server/entry.mjs, gdy output to server lub hybrid
  • Angular, Gatsby, Create React App, Eleventy, Vite: traktowane jako strony statyczne

PHP + Node (Laravel z Vite) i Ruby + Node (Rails z JS) to grupy wielojęzyczne (polyglot). Zobacz PHPi Ruby.

Daj swojemu agentowi chmurę.

Zyskaj do 15 € środków na start przy rejestracji.

Kontynuuj z GitHub

lub przez e-mail

Bądź na bieżąco.

Nowości produktowe, bez spamu. Możesz zrezygnować w każdej chwili.