Create static JSON config file for standalone server output #76732
+26
−13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What?
Instead of inlining the build-time JSON config to the
server.js
file generated to the standalone output of Next.js build (with config optionoutput: 'standalone'
, this PR changes the the build process to emit a separate JSON file which isrequire
d into theserver.js
file.Why?
It's cleaner to separate the config into its own file, since it's static JSON anyway. This change also makes it easier for one to create their own
server.js
file.How?
Instead of inlining the
JSON.stringify(nextConfig)
content into the generatedserver.js
file, write a separate filenext.config.json
next to it, and use the already-createdrequire
to load it. This should work with both CommonJS and ESM since thecreateRequire
is already configured. Therequire
automatically parses JSON.I did not add new tests because this should not change existing behavior, and there's plenty of existing tests for the standalone build output; and if this was broken, hopefully some of them would fail.