fix: remove package name from standalone build output paths #84339
+9
−15
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?
Fixed standalone build output paths to exclude workspace package names when using pnpm workspaces.
Why?
In Next.js 15.5.0+, when using
output: 'standalone'
with pnpm workspaces, the server.js file was incorrectly placed at.next/standalone/{package_name}/server.js
instead of the expected.next/standalone/server.js
. This broke existing deployment scripts and Docker configurations that expect the standard location.How?
Modified the path calculation logic in two files:
packages/next/src/build/utils.ts
: Fixed server.js and package.json paths incopyTracedFiles
functionpackages/next/src/build/index.ts
: Fixed server.js path inwriteStandaloneDirectory
function and removed package name from middleware, pages, and app directory pathsThe fix ensures core server files are placed directly in the standalone directory while preserving directory structure for other files.
Related Issues