serverComponentsExternalPackages

服务端组件 (Server Components)路由处理器 (Route Handlers) 中使用的依赖项会被 Next.js 自动打包。

如果某个依赖项使用了 Node.js 特有的功能,您可以选择将其从服务端组件打包中排除,转而使用原生 Node.js require

next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    serverComponentsExternalPackages: ['@acme/ui'],
  },
}

module.exports = nextConfig

Next.js 包含了一份常用包的简短列表,这些包目前正在进行兼容性适配并已自动排除:

  • @aws-sdk/client-s3
  • @aws-sdk/s3-presigned-post
  • @blockfrost/blockfrost-js
  • @highlight-run/node
  • @jpg-store/lucid-cardano
  • @libsql/client
  • @mikro-orm/core
  • @mikro-orm/knex
  • @prisma/client
  • @react-pdf/renderer
  • @sentry/profiling-node
  • @swc/core
  • argon2
  • autoprefixer
  • aws-crt
  • bcrypt
  • better-sqlite3
  • canvas
  • cpu-features
  • cypress
  • eslint
  • express
  • firebase-admin
  • jest
  • jsdom
  • libsql
  • mdx-bundler
  • mongodb
  • mongoose
  • next-mdx-remote
  • next-seo
  • node-pty
  • node-web-audio-api
  • pg
  • playwright
  • postcss
  • prettier
  • prisma
  • puppeteer-core
  • puppeteer
  • rimraf
  • sharp
  • shiki
  • sqlite3
  • tailwindcss
  • ts-node
  • typescript
  • vscode-oniguruma
  • webpack
  • websocket
  • zeromq