Capítulo 36 de 456
Ejete do servidor integrado do next start só quando o router do Next.js não atende os requisitos; a maioria dos apps não precisa disso, e um backend existente já pode conviver com Next.js sem virar "custom server".
next({dev, dir, conf, ...}): função que inicializa a app Next.js dentro do custom server, retorna app com app.getRequestHandler().app.prepare(): precisa resolver antes de o servidor HTTP começar a atender requests.output: 'standalone': standalone gera um server.js mínimo próprio; standalone não traceia arquivos de custom server, os dois modos não se combinam.server.js não passa pelo Next.js Compiler: sintaxe e imports precisam ser compatíveis diretamente com a versão do Node em uso.import { createServer } from 'http'
import next from 'next'
const port = parseInt(process.env.PORT || '3000', 10)
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare().then(() => {
createServer((req, res) => {
handle(req, res)
}).listen(port)
})
http.createServer delegando pro request handler do Next.js.{
"scripts": {
"dev": "node server.js",
"build": "next build",
"start": "NODE_ENV=production node server.js"
}
}
next dev/next start pelo entrypoint próprio.| Option | Type | Description |
|---|---|---|
conf | Object | Mesmo objeto de next.config.js. Default {} |
dev | Boolean | Opcional. Modo dev. Default false |
dir | String | Opcional. Localização do projeto. Default '.' |
quiet | Boolean | Opcional. Oculta mensagens de erro com info do servidor. Default false |
hostname | String | Opcional. Hostname atrás do qual o servidor roda |
port | Number | Opcional. Porta atrás da qual o servidor roda |
httpServer | node:http#Server | Opcional. HTTP Server por trás do Next.js |
turbopack | Boolean | Opcional. Habilita Turbopack (default habilitado) |
webpack | Boolean | Opcional. Habilita webpack |
output: 'standalone': standalone ignora o custom server e gera seu próprio server.js; os dois não funcionam juntos.app.prepare() deve resolver (.then()) antes de o servidor começar a escutar.server.js roda fora do pipeline do Next.js Compiler; sintaxe precisa ser compatível com o Node.js em uso diretamente.turbopack/webpack como opções do next() controlam o bundler mesmo em modo custom server.