Open-Source Wikis

/

Next.js

/

Packages

vercel/next.js

Packages

The packages/ directory holds 21 npm packages in this pnpm workspace. The flagship is packages/next — what users install when they run npm install next. Everything else is either a peripheral CLI, a peer-dependency-only adapter, or a build/runtime helper.

The package list

graph TD
    Next["next<br/>The framework"]:::core

    CNA["create-next-app<br/>npx scaffolding CLI"]:::cli
    Codemod["next-codemod<br/>Upgrade transforms"]:::cli

    SWC["next-swc<br/>Native binaries"]:::compiler
    EslintNext["eslint-plugin-next<br/>Lint rules"]:::lint
    EslintCfg["eslint-config-next<br/>Preset"]:::lint
    EslintInt["eslint-plugin-internal<br/>Internal lints"]:::lint

    Font["font<br/>next/font impl"]:::feat
    Third["third-parties<br/>3rd-party scripts"]:::feat
    Mdx["next-mdx<br/>MDX integration"]:::feat
    Bundle["next-bundle-analyzer<br/>+UI"]:::feat
    Routing["next-routing<br/>Routing tools"]:::feat
    Env["next-env<br/>Env loader"]:::feat
    Rspack["next-rspack<br/>rspack adapter"]:::feat

    Refresh["react-refresh-utils<br/>HMR utils"]:::runtime
    PolyM["next-polyfill-module"]:::runtime
    PolyN["next-polyfill-nomodule"]:::runtime

    Plugin["next-plugin-storybook"]:::tool
    Playwright["next-playwright"]:::tool

    classDef core fill:#cce5ff
    classDef cli fill:#d4edda
    classDef compiler fill:#fff3cd
    classDef lint fill:#f8d7da
    classDef feat fill:#e2d9f3
    classDef runtime fill:#d1ecf1
    classDef tool fill:#fefefe

Index of packages

Package Page Role
packages/next next The framework itself
packages/create-next-app create-next-app npx create-next-app scaffolding CLI
packages/next-codemod next-codemod Upgrade transforms run by next upgrade
packages/next-swc next-swc Native binaries (napi-rs and wasm) consumed by next
packages/eslint-plugin-next eslint-plugin-next Lint rules shipped to users
packages/font font The next/font implementation
packages/third-parties third-parties Optimized third-party script integrations
packages/next-mdx next-mdx @next/mdx MDX integration
packages/next-rspack next-rspack rspack bundler adapter
All others other-packages env, polyfills, eslint-config, routing, refresh, plugins

How packages relate

Most peripheral packages are dev-time helpers that the framework loads dynamically:

  • packages/font/ is invoked when user code imports next/font/google or next/font/local.
  • packages/next-swc/ is loaded by packages/next/src/build/swc/ and the SWC-driven dev pipeline.
  • packages/next-codemod/ is invoked by next upgrade.
  • packages/eslint-plugin-next/ is consumed by user ESLint configs.

A few are standalone CLIs that don't depend on next at runtime:

  • packages/create-next-app/ runs without any local Next.js install.

The whole workspace is published in lockstep — every minor and patch version bumps every package. See release.js and the version script in package.json.

Versioning

All packages share a major/minor version. The latest tag is v16.3.0-canary.5 and stable releases follow the same rhythm. Workspace dependencies use workspace:* so local development picks up local changes without re-publishing.

Adapter package

packages/next exposes an adapter API at packages/next/src/build/adapter/ that hosting platforms (most notably Vercel) implement. The interface lets the platform plug into the build to produce platform-specific output (function bundles, edge bundles, image optimization configs). See the adapter section in the next page.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Packages – Next.js wiki | Factory