Capítulo 243 de 456

serverExternalPackages

Core Idea

Faz opt-out de dependências específicas do bundling automático em Server Components/Route Handlers, usando require nativo do Node.js em vez disso, para pacotes que dependem de features específicas do Node.

Key Concepts

  • serverExternalPackages: array de nomes de pacote a excluir do bundling do Next.js.
  • Next.js já mantém uma lista curta de pacotes populares excluídos automaticamente por compatibilidade (ex.: @prisma/client, sharp, bcrypt, puppeteer, playwright, sqlite3, pg, mongodb, express, jest, typescript, webpack, entre dezenas de outros).

Code Examples

/** @type {import('next').NextConfig} */
const nextConfig = {
  serverExternalPackages: ['@acme/ui'],
}
module.exports = nextConfig
  • O que demonstra: excluir um pacote interno do bundling porque usa features Node-específicas.

Version History

VersãoMudança
v15.0.0Movido de experimental para estável. Renomeado de serverComponentsExternalPackages para serverExternalPackages.

Key Takeaways

  1. Antes de adicionar manualmente, verifique se o pacote já está na lista default do Next.js (checar server-external-packages.jsonc no repo).
  2. Nome antigo serverComponentsExternalPackages foi renomeado na v15; código legado precisa atualizar a chave.