# Source: https://nextjs.org/docs/pages/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/app/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/pages/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/app/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/pages/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/app/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/pages/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/app/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/pages/api-reference/config/next-config-js/serverExternalPackages.md

# Source: https://nextjs.org/docs/app/api-reference/config/next-config-js/serverExternalPackages.md

# serverExternalPackages
@doc-version: 16.0.4


Dependencies used inside [Server Components](/docs/app/getting-started/server-and-client-components.md) and [Route Handlers](/docs/app/api-reference/file-conventions/route.md) will automatically be bundled by Next.js.

If a dependency is using Node.js specific features, you can choose to opt-out specific dependencies from the Server Components bundling and use native Node.js `require`.

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

module.exports = nextConfig
```

Next.js includes a [short list of popular packages](https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/server-external-packages.jsonc) that currently are working on compatibility and automatically opt-ed out:

* `@appsignal/nodejs`
* `@aws-sdk/client-s3`
* `@aws-sdk/s3-presigned-post`
* `@blockfrost/blockfrost-js`
* `@highlight-run/node`
* `@huggingface/transformers`
* `@jpg-store/lucid-cardano`
* `@libsql/client`
* `@mikro-orm/core`
* `@mikro-orm/knex`
* `@node-rs/argon2`
* `@node-rs/bcrypt`
* `@prisma/client`
* `@react-pdf/renderer`
* `@sentry/profiling-node`
* `@sparticuz/chromium`
* `@sparticuz/chromium-min`
* `@statsig/statsig-node-core`
* `@swc/core`
* `@xenova/transformers`
* `argon2`
* `autoprefixer`
* `aws-crt`
* `bcrypt`
* `better-sqlite3`
* `canvas`
* `chromadb-default-embed`
* `config`
* `cpu-features`
* `cypress`
* `dd-trace`
* `eslint`
* `express`
* `firebase-admin`
* `htmlrewriter`
* `import-in-the-middle`
* `isolated-vm`
* `jest`
* `jsdom`
* `keyv`
* `libsql`
* `mdx-bundler`
* `mongodb`
* `mongoose`
* `newrelic`
* `next-mdx-remote`
* `next-seo`
* `node-cron`
* `node-pty`
* `node-web-audio-api`
* `onnxruntime-node`
* `oslo`
* `pg`
* `playwright`
* `playwright-core`
* `postcss`
* `prettier`
* `prisma`
* `puppeteer-core`
* `puppeteer`
* `ravendb`
* `require-in-the-middle`
* `rimraf`
* `sharp`
* `shiki`
* `sqlite3`
* `ts-node`
* `ts-morph`
* `typescript`
* `vscode-oniguruma`
* `webpack`
* `websocket`
* `zeromq`

| Version   | Changes                                                                                                        |
| --------- | -------------------------------------------------------------------------------------------------------------- |
| `v15.0.0` | Moved from experimental to stable. Renamed from `serverComponentsExternalPackages` to `serverExternalPackages` |