During a build, Next.js will automatically trace each page and its dependencies to determine all of the files that are needed for deploying a production version of your application.
This feature helps reduce the size of deployments drastically. Previously, when deploying with Docker you would need to have all files from your package's
dependencies installed to run
next start. Starting with Next.js 12, you can leverage Output File Tracing in the
.next/ directory to only include the necessary files.
Furthermore, this removes the need for the deprecated
serverless target which can cause various issues and also creates unnecessary duplication.
next build, Next.js will use
@vercel/nft to statically analyze
fs usage to determine all files that a page might load.
Next.js' production server is also traced for its needed files and output at
.next/next-server.js.nft.json which can be leveraged in production.
To leverage the
.nft.json files emitted to the
.next output directory, you can read the list of files in each trace which are relative to the
.nft.json file and then copy them to your deployment location.
unstable_excludeFilesrespectively. Each prop accepts an array of globs relative to the project's root to either include or exclude in the trace.
.nft.jsonfiles. The files must be read by your deployment platform, for example Vercel, to create a minimal deployment. In a future release, a new command is planned to utilize these