# PRNext 0.1.20: menos trabalho, mais controle

PRNext 0.1.20-alpha está disponível. Esta versão aborda dois custos que crescem com uma aplicação: o trabalho realizado desnecessariamente e a dificuldade de compreender o comportamento da produção. Uma página pública pode começar com seu shell nativo, uma edição de ação do servidor pode poupar guias não relacionadas e os caches do compilador têm um orçamento de retenção compartilhado.

A versão também fortalece os controles de implantação com uma origem HTTPS explícita, verificações de integridade que rejeitam redirecionamentos, reversão após uma troca de tráfego e métricas protegidas. Novos caminhos experimentais permanecem desativados por padrão. Cada um atende a um caso de uso específico com condições de ativação definidas, fallbacks ou erros explícitos.

## Inicie uma página PPR antes da inicialização do Node

Uma página PPR combina uma parte preparada durante a construção com uma continuação React que produz conteúdo dinâmico. Com experimental.nativePprShell, o servidor Rust pode enviar o shell certificado antes de iniciar o trabalhador do Node. A continuação então recomeça a partir do mesmo artefato verificado em vez de construir uma resposta inicial independente.

Este caminho cobre GETs de documentos concretos do App Router PPR sem cookies, autorização ou strings de consulta. Requer cacheComponents. Solicitações envolvendo middleware, reescritas, basePath, nonces CSP ou cabeçalhos de navegação de voo mantêm a renderização normal. Shells de parâmetros genéricos, Edge e caches externos também permanecem fora deste escopo.

```js
export default {
  cacheComponents: true,
  experimental: {
    nativePprShell: true
  }
};
```

A casca deve estar intacta e não expirada. Qualquer invalidação persistente desabilita esta otimização de snapshot de build, inclusive entre reinicializações, sem desabilitar PPR. Uma solicitação que já utiliza um snapshot termina com o mesmo artefato. As respostas permanecem privadas e sem armazenamento: este mecanismo não transforma páginas autenticadas em conteúdo público nem substitui a autorização.

## Atualize as rotas afetadas por uma ação do servidor

A edição de uma ação usada por uma tela de faturamento não precisa interromper a abertura de uma guia em uma parte não relacionada do produto. PRNext compara gráficos de dependência antes e depois da edição para identificar rotas que importam a ação diretamente ou através de suas dependências.

Quando esse escopo for estabelecido, a atualização do desenvolvimento poderá direcionar as rotas afetadas. Uma guia poupada aplica sua geração adiada antes de navegar para uma rota alterada. As gerações de servidores ainda publicam como um todo e uma mutação pendente nunca mais é enviada para acompanhar uma atualização.

Um gráfico desconhecido ou incompleto mantém uma atualização global. As alterações de configuração, rota, tempo de execução e ligação também o fazem, juntamente com middleware, reescritas e certas rotas internacionalizadas, paralelas ou de interceptação. A segmentação depende do escopo estabelecido, e não de uma suposição sobre o arquivo que você acabou de salvar.

## Escolha Oxc para o compilador React sem fazer com que todos os projetos o instalem

O compilador React ganha um backend experimental Oxc junto com o backend Babel existente. A saída do navegador e a renderização do servidor do App Client Component usam transformações separadas. As identidades de cache incluem o back-end, a versão do compilador e o modo cliente ou SSR para que um resultado não possa ser reutilizado no contexto errado.

Babel permanece o padrão quando o reactCompiler está habilitado. Para selecionar Oxc, instale explicitamente oxc-transform-react@0.157.0 no projeto do aplicativo com suas dependências nativas opcionais habilitadas. Até mesmo um CLI global resolve esse compilador a partir do aplicativo. Um compilador ou ligação nativa ausente ou incompatível produz um erro explícito; PRNext nunca altera back-ends silenciosamente.

```js
export default {
  reactCompiler: {
    backend: 'oxc'
  }
};
```

O escopo continua sendo componentes e ganchos elegíveis do projeto. Componentes de servidor, ações de servidor, pacotes npm e o gráfico do servidor de páginas ficam fora dessa transformação. Os mapas de origem e a atualização rápida são preservados. O relatório do compilador prnext identifica o back-end e os diagnósticos em nível de arquivo; o Oxc API não fornece os eventos necessários para contar funções otimizadas como o Babel.

Projetos que mantêm o Babel ou desativam o compilador React não instalam mais o Oxc para uso interno do PRNext. Selecionar um compilador escrito em Rust não é uma aceleração medida para sua aplicação: compare compilação, hidratação e interações com seu próprio código.

## Emitir estilos independentes em paralelo

experimental.parallelBuilds tem como alvo um estágio de construção específico do App Router. Após a descoberta ordenada de dependências, PRNext congela planos de folhas de estilo, desduplica saídas e distribui trabalhos independentes. A vinculação permanece determinística para preservar a ordem das folhas de estilo.

A simultaneidade depende da contagem de CPU, da memória disponível e dos limites configurados. Este exemplo permite no máximo dois trabalhadores com um orçamento de admissão estimado de 512 MiB. O orçamento não é um limite RSS imposto ao código de terceiros.

```js
export default {
  experimental: {
    parallelBuilds: {
      maxWorkers: 2,
      maxMemoryMb: 512
    }
  }
};
```

Hooks de webpack personalizados, carregadores e pipelines PostCSS, bem como retornos de chamada Sass, mantêm a execução serial. Se um trabalho falhar, PRNext interrompe novas admissões, liquida o trabalho já iniciado e descarta a construção de teste. A última compilação publicada permanece disponível. O manifesto registra a contagem real de trabalhos de folha de estilo e a simultaneidade selecionada, distinguindo uma opção habilitada do trabalho paralelo realmente executado.

## Leia um upload antes que ele termine de chegar

Com experimental.streamingRequestBodies, um manipulador de rota do roteador de aplicativo Node pode começar a ler Request.body antes que todo o upload chegue. O transporte nativo negocia essa capacidade com o trabalhador e envia no máximo um quadro de 64 KiB por crédito do leitor. O consumidor controla o ritmo de entrega.

Os trabalhadores sem essa capacidade usam o caminho em buffer existente. Ações de servidor, APIs de páginas e solicitações já armazenadas em buffer pelo middleware também mantêm seu comportamento anterior. O limite total de solicitações permanece 32 MiB e as reservas de admissão existentes ainda se aplicam. Esta opção não promete uma redução geral no uso de heap V8 nem aumento na simultaneidade de admissão de memória.

```js
export default {
  experimental: {
    streamingRequestBodies: true
  }
};
```

O manipulador pode ser executado antes que o truncamento ou um upload excessivo seja detectado. Valide a entrada completa e a autorização antes de cometer um efeito comercial. O cancelamento ou um retorno antecipado fecha a pista de upload sem repetir a mutação ou sacrificar o host do Node íntegro. Para uma importação de dados, analise progressivamente e confirme a transação assim que todas as condições forem satisfeitas.

## Dê um orçamento aos caches do compilador

Os caches do compilador compartilham um destino de retenção 256 MiB por projeto, configurável por meio de compilaçãoCache.maxDiskSize. A política é executada após compilações, incluindo compilações com falha, e após um encerramento limpo do desenvolvimento. Limita a retenção de arquivos elegíveis; trabalhadores ativos, arquivos ocupados ou verificações incompletas podem adiar a recuperação.

prnext cache relata estatísticas para arquivos reconhecidos. Seu modo de simulação visualiza a poda sem excluir dados. Este exemplo inspeciona caches e, em seguida, simula um destino 64 MiB de um aplicativo usando esta versão de PRNext.

```sh
npx --no-install prnext cache --json
npx --no-install prnext cache --prune --dry-run --max-bytes 67108864 --json
```

Registros JSON grandes usam compactação com validação de tamanho decodificado, chave e soma de verificação. Os registros brutos existentes permanecem legíveis; entradas corrompidas ou incompatíveis tornam-se falhas de cache. A publicação permanece atômica e a falha no cache não se torna uma dependência obrigatória da compilação.

Pare o desenvolvimento antes de aplicar uma poda. Bancos de dados de tempo de execução, data.sqlite3, caches de páginas e imagens e histórico de invalidações são excluídos. Este é um alvo de retenção e não uma cota de disco rígido. A remoção pode retardar uma compilação posterior ou exigir que uma fonte seja baixada novamente.

## Mantenha menos dependências e artefatos redundantes

PRNext agrupa a entrada Node create() do Fontkit com licenças de proveniência e dependência. TTF, OTF/CFF, WOFF, WOFF2, TTC, DFONT e fontes variáveis ​​permanecem cobertas sem a instalação da árvore de dependência externa completa do Fontkit para esse uso. A integração interna não substitui as importações do Fontkit feitas pela sua aplicação.

Uma compilação de produção mantém um renderizador OpenGraph quando necessário. A análise de gráfico compilado limitado pode omiti-lo somente quando o ImageResponse for certificado como não utilizado. Edge, desenvolvimento, módulos externos desconhecidos e carregamento computado mantêm comportamento conservador. Nomes, licenças e carregamento relativo de WASM permanecem preservados.

O espaço de tempo de execução é recuperado do caminho da solicitação por meio de pequenas etapas SQLite e manutenção limitada de arquivos órfãos. Leitores e publicações ativos são protegidos. Os bancos de dados existentes mantêm seu formato e nenhum VACUUM completo é executado durante uma solicitação. Os diretórios temporários de construção e desenvolvimento também possuem diários de propriedade: apenas proprietários locais verificados como abandonados tornam-se elegíveis para recuperação, enquanto os backups necessários para recuperação permanecem intactos.

Para implantações independentes, implemente o diretório independente completo sem copiar também a compilação comum ao lado dele. Isso evita a duplicação dos artefatos que a estrutura acabou de montar.

## Remova passagens desnecessárias nas compilações e no navegador

As importações de pedaços de aplicativos são reescritas na memória antes da primeira gravação. A descoberta do diretório pai é compartilhada em uma construção e os resumos Oxc limitados reutilizam diretivas e exportam informações sem reter grandes árvores de sintaxe. As transformações que precisam do Babel mantêm o caminho existente.

No navegador, a adoção de um grupo de folhas de estilo cria um índice temporário de links existentes em vez de digitalizar o documento para cada folha. O roteamento Rust empresta caminhos e segmentos mais comuns. A captura de voo remove uma cópia intermediária apenas para buffers de propriedade interna, onde a propriedade permite, retendo cópias defensivas para produtores externos.

As análises de compressão de voo tornam-se assíncronas com simultaneidade limitada. Na saturação, as respostas usam o Flight comum. Os pré-carregamentos PPR reutilizam a decodificação base64 nativa quando disponível, mantendo o substituto do navegador. Estas alterações reduzem as operações identificadas; eles não medem independentemente a latência de HTTP ou a duração completa da construção.

## Preservar HTTPS e separar contas no estado do cliente

Atrás de um proxy reverso, a reconstrução de um HTTP URL pode quebrar um redirecionamento, um cookie seguro ou um retorno de chamada de autenticação. server.publicOrigin agora define a origem externa canônica para URLs de solicitação e redirecionamentos. Tem precedência sobre os cabeçalhos de encaminhamento.

server.trustedProxies limita os endereços IP ou redes CIDR de proxies que se conectam diretamente a PRNext. Somente um par TCP permitido pode fornecer protocolo e host encaminhados. Esta regra não valida uma cadeia cliente-IP completa. Substitua o domínio e os endereços de exemplo pelos da sua implantação e, em seguida, reconstrua o artefato que salva essas configurações.

```js
export default {
  server: {
    publicOrigin: 'https://example.com',
    trustedProxies: ['127.0.0.1', '::1']
  },
  navigationCache: {
    authCookies: [
      'session-cookie-name',
      '__Secure-session-cookie-name'
    ]
  }
};
```

Os nomes dos cookies devem corresponder à sua biblioteca de autenticação, incluindo suas variantes seguras. Com esta política, uma identidade alterada ou desconhecida requer um novo documento antes que os layouts ou páginas retidos sejam adotados. Uma identidade de mesma conta recém-verificada pode manter seu rascunho. As visualizações PPR aguardam essa verificação e os modelos totalmente estáticos usam uma solicitação de documento.

A fronteira também protege a troca de contas e a restauração do histórico. Teste a conta A, saia e depois a conta B na mesma guia: os adereços de layout antigos e o rascunho privado de A não devem aparecer para B. O aplicativo permanece responsável por autorizar cada leitura e mutação do servidor protegido.

## Verifique uma instância após alternar o tráfego

Um redirecionamento 302 para uma página de login não estabelece a integridade do aplicativo. As sondagens agora exigem respostas HTTP 200 completas e limitadas. O endpoint /_prnext/health nativo reservado confirma que o servidor pode aceitar tráfego e fica indisponível assim que o encerramento normal começa.

A prontidão nativa não certifica um trabalhador do Node sob demanda nem um banco de dados. Uma rota de aplicativo anônima e somente leitura pode verificar as dependências necessárias para atender o tráfego. Configure-o como caminho de integridade para um aplicativo persistente. Os caminhos de integridade salvos anteriormente permanecem inalterados: um caminho / antigo que redireciona precisa de substituição explícita por essa rota dedicada.

Após uma troca de tráfego bem-sucedida, o gerenciador retém a instância anterior durante uma janela de monitoramento, 15 segundos por padrão. Três falhas de integridade consecutivas ou uma saída de substituição inesperada podem desencadear um retorno à instância anterior se ela ainda estiver íntegra. As respostas já iniciadas são drenadas, mas nenhuma solicitação ou mutação é reproduzida. Uma reversão de código não desfaz uma gravação SQL ou uma migração de esquema.

## Entenda falhas e efeitos já cometidos

A referência SaaS demonstra a idempotência transacional no escopo da conta. Se uma gravação for bem-sucedida, mas sua resposta for perdida, uma nova tentativa explícita com a mesma chave produzirá apenas uma gravação. A restrição e a transação pertencem ao aplicativo; a estrutura não pode inferir que outro envio é seguro.

Os cenários de qualificação exercitam interrupção e recuperação de PostgreSQL, reivindicações simultâneas da mesma chave, perda de resposta após COMMIT, bloqueio de SQLite e SQLITE_FULL em um banco de dados descartável e uma falha e reinicialização reais de Redis. Eles complementam fluxos de trabalho nominais bem-sucedidos com situações em que o resultado comercial deve permanecer compreensível.

As métricas HTTP são opcionais e protegidas pelo portador por meio de PRNEXT_METRICS_TOKEN. Eles expõem durações, solicitações ativas, resultados, saturação de admissões e eventos de trabalhadores com rótulos limitados. Continue raspando em privado. Perdas de exportação OTLP, estouros de fila e rejeições parciais possuem contadores; O diagnóstico do nó também usa o canal prnext.telemetry para permanecer observável quando o coletor de rastreamento estiver indisponível.

O monitoramento de dependência verifica npm, Cargo e renderizador incorporado e componentes de fonte diariamente, juntamente com atualizações semanais e procedência registrada. Uma auditoria no momento do lançamento continua sendo um instantâneo, e não um substituto para o monitoramento de novos avisos de segurança.

## O que as medições estabelecem

O estudo de armazenamento é anterior ao candidato final e usa pares Windows x64, Nó 24.22.1, correspondentes a React 19.3.1 e o mesmo executável nativo público. O tamanho recém-instalado cai de 159.05 para 141.98 MiB com 13 menos pacotes. Esses números não medem os arquivos 0.1.20-alpha finais e não são transferidos automaticamente para outra plataforma.

Em 28 compilações de dois pequenos corpora sintéticos SSR, medianas quentes emparelhadas reduzem bytes de construção lógica em 67.79% sem OpenGraph e 26.61% com OpenGraph. Os bytes do cache do compilador caem cerca de 64.4%. O tempo de parede build-API observado aumenta em 13.94 e 15.85 ms. Estes são arquivos lógicos em vez de blocos de disco alocados e uma compensação de armazenamento em vez de uma melhoria geral de velocidade.

A campanha SaaS referenciada nas notas técnicas é executada por duas horas na fonte de qualificação 2323dc55 sob limites observados de duas CPUs e 5 GiB. Ele executa gravações SQL 9,238 e rotações de trabalho 11 com processos verificados 235 e amostras de descritores de arquivo. Onze sondas somente leitura falham durante rotações induzidas e permanecem registradas; nenhuma mutação é repetida. Estas observações mantêm a sua fonte executada e não são apresentadas como um teste dos arquivos finais.

Esses resultados documentam mecanismos e cargas de trabalho controladas. Eles não estabelecem ganho geral de latência HTTP nem redução geral de memória, ausência de vazamentos ou SLA de produção. As notas técnicas vinculadas a este artigo mantêm as condições e limitações das campanhas.

## Prepare uma implantação com seu aplicativo real

Com os pacotes correspondentes instalados, prnext check --production --json examina configurações de implantação, desvio de artefato, retenção de estado autenticado e opções experimentais. Fornece diagnóstico antes de mudar o tráfego; ele não pode substituir as rotas, formulários e retornos de chamada específicos do seu produto.

```sh
npm install @thomas.f/prnext@0.1.20-alpha react@19.3.1 react-dom@19.3.1 react-server-dom-webpack@19.3.1
npx --no-install prnext check --production --json
npx --no-install prnext typecheck
npx --no-install prnext build
npx --no-install prnext output --json
```

PRNext 0.1.20-alpha requer o nó ^22.23.4, ^24.22.1 ou >=26.12.1 com React, React DOM e react-server-dom-webpack alinhados em 19.3.1. Mantenha as dependências nativas opcionais habilitadas e as versões da estrutura e do pacote nativo idênticas. A verificação de tipo explícita precisa da instalação TypeScript e do tsconfig do aplicativo. Esses requisitos não substituem a aplicação de novos patches de segurança para cada dependência.

Após alterar as versões, reconstrua e reinicie o aplicativo. Para pstart, primeiro pare o supervisor com pdown usando o mesmo PRNEXT_PM_HOME e, em seguida, atualize e reconstrua todos os aplicativos habilitados que compartilham esse supervisor antes de reiniciá-lo. o pré-start sozinho não recarrega o código do supervisor. Retenha a implantação anterior e as migrações de banco de dados compatíveis para permitir um retorno.

PRNext permanece um alfa com compatibilidade parcial com Next.js. Habilite caminhos experimentais separadamente e teste um fluxo de trabalho representativo: carregamento frio, estilos, navegação, troca de conta, uploads interrompidos e interrupção de dependência. O guia de atualização associado detalha essas verificações e os limites de cada opção.

## Sources

[PRNext 0.1.20-alpha: published release](https://github.com/Lorkydey/PRNext/releases/tag/v0.1.20-alpha)

[PRNext 0.1.20: release source](https://github.com/Lorkydey/PRNext/tree/8061e6d4e78f35cc82935c7ae28d8244968217ef)

[Experimental performance paths and React Compiler](https://github.com/Lorkydey/PRNext/blob/8061e6d4e78f35cc82935c7ae28d8244968217ef/packages/prnext/docs/ai/compatibility.md)

[Compiler storage and deployment guide](https://github.com/Lorkydey/PRNext/blob/8061e6d4e78f35cc82935c7ae28d8244968217ef/packages/prnext/docs/ai/deployment.md)

[Health checks, rollback and monitoring](https://github.com/Lorkydey/PRNext/blob/8061e6d4e78f35cc82935c7ae28d8244968217ef/docs/PRODUCTION-OPERATIONS.md)

[Upgrade guide from 0.1.19 to 0.1.20](https://github.com/Lorkydey/PRNext/blob/9758ed8f551228f50a8c12e2ff218910adf02573/docs/UPGRADING-0.1.20.md)

[Measurement conditions and limits](https://github.com/Lorkydey/PRNext/blob/9758ed8f551228f50a8c12e2ff218910adf02573/RELEASE.md#measurements-and-their-scope)

[Two-hour controlled SaaS qualification](https://github.com/Lorkydey/PRNext/actions/runs/41805320748)

Publicado: 2026-11-05

Modificado: 2026-11-05

Autor: PRNext

---

Linguagem: pt-BR

Canonical: https://prnext.dev/pt/blog/prnext-0-1-20-performance-storage-production

Index: https://prnext.dev/llms.txt
