New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add docs for leveraging outputStandalone config #32255
Conversation
## Caveats | ||
|
||
- While tracing in monorepo setups, the project directory is used for tracing by default. For `next build packages/web-app`, `packages/web-app` would be the tracing root and any files outside of that folder will not be included. To include files outside of this folder you can set `experimental.outputFileTracingRoot` in your `next.config.js`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you share an example of the outputFileTracingRoot
value in this case? Would it be something like outputFileTracingRoot: '../'
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added an example/normalizing to ensure relative paths are handled but warning that it should be absolute.
Co-authored-by: Steven <steven@ceriously.com>
This comment has been minimized.
This comment has been minimized.
Stats from current PRDefault Build (Decrease detected ✓)General Overall increase
|
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
buildDuration | 16.4s | 17.8s | |
buildDurationCached | 3.1s | 3.1s | -20ms |
nodeModulesSize | 347 MB | 347 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.673 | 2.887 | |
/ avg req/sec | 935.38 | 866.03 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.247 | 1.338 | |
/error-in-render avg req/sec | 2004.45 | 1868.38 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
450.HASH.js gzip | 179 B | 179 B | ✓ |
framework-HASH.js gzip | 42.2 kB | 42.2 kB | ✓ |
main-HASH.js gzip | 28.4 kB | 28.4 kB | ✓ |
webpack-HASH.js gzip | 1.45 kB | 1.45 kB | ✓ |
Overall change | 72.3 kB | 72.3 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.37 kB | 1.37 kB | ✓ |
_error-HASH.js gzip | 194 B | 194 B | ✓ |
amp-HASH.js gzip | 312 B | 312 B | ✓ |
css-HASH.js gzip | 326 B | 326 B | ✓ |
dynamic-HASH.js gzip | 2.38 kB | 2.38 kB | ✓ |
head-HASH.js gzip | 350 B | 350 B | ✓ |
hooks-HASH.js gzip | 635 B | 635 B | ✓ |
image-HASH.js gzip | 4.49 kB | 4.49 kB | ✓ |
index-HASH.js gzip | 263 B | 263 B | ✓ |
link-HASH.js gzip | 1.87 kB | 1.87 kB | ✓ |
routerDirect..HASH.js gzip | 321 B | 321 B | ✓ |
script-HASH.js gzip | 383 B | 383 B | ✓ |
withRouter-HASH.js gzip | 318 B | 318 B | ✓ |
85e02e95b279..7e3.css gzip | 107 B | 107 B | ✓ |
Overall change | 13.3 kB | 13.3 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
_buildManifest.js gzip | 460 B | 460 B | ✓ |
Overall change | 460 B | 460 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
index.html gzip | 532 B | 532 B | ✓ |
link.html gzip | 545 B | 545 B | ✓ |
withRouter.html gzip | 526 B | 526 B | ✓ |
Overall change | 1.6 kB | 1.6 kB | ✓ |
Default Build with SWC (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
buildDuration | 17.9s | 18.3s | |
buildDurationCached | 3.2s | 3.3s | |
nodeModulesSize | 347 MB | 347 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.686 | 2.713 | |
/ avg req/sec | 930.77 | 921.56 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.296 | 1.359 | |
/error-in-render avg req/sec | 1929 | 1840.04 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
450.HASH.js gzip | 179 B | 179 B | ✓ |
framework-HASH.js gzip | 42.3 kB | 42.3 kB | ✓ |
main-HASH.js gzip | 28.6 kB | 28.6 kB | ✓ |
webpack-HASH.js gzip | 1.44 kB | 1.44 kB | ✓ |
Overall change | 72.5 kB | 72.5 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.35 kB | 1.35 kB | ✓ |
_error-HASH.js gzip | 180 B | 180 B | ✓ |
amp-HASH.js gzip | 305 B | 305 B | ✓ |
css-HASH.js gzip | 321 B | 321 B | ✓ |
dynamic-HASH.js gzip | 2.37 kB | 2.37 kB | ✓ |
head-HASH.js gzip | 342 B | 342 B | ✓ |
hooks-HASH.js gzip | 622 B | 622 B | ✓ |
image-HASH.js gzip | 4.53 kB | 4.53 kB | ✓ |
index-HASH.js gzip | 256 B | 256 B | ✓ |
link-HASH.js gzip | 1.9 kB | 1.9 kB | ✓ |
routerDirect..HASH.js gzip | 314 B | 314 B | ✓ |
script-HASH.js gzip | 375 B | 375 B | ✓ |
withRouter-HASH.js gzip | 309 B | 309 B | ✓ |
85e02e95b279..7e3.css gzip | 107 B | 107 B | ✓ |
Overall change | 13.3 kB | 13.3 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
_buildManifest.js gzip | 458 B | 458 B | ✓ |
Overall change | 458 B | 458 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | ijjk/next.js docs/standalone-build | Change | |
---|---|---|---|
index.html gzip | 533 B | 533 B | ✓ |
link.html gzip | 546 B | 546 B | ✓ |
withRouter.html gzip | 527 B | 527 B | ✓ |
Overall change | 1.61 kB | 1.61 kB | ✓ |
This updates our docker example to leverage the output traces and standalone build to reduce the resulting docker image quite a bit. docker image size before: `272MB` docker image size after: `121MB` node-14:alpine size (base image): `118MB` ## Documentation / Examples - [x] Make sure the linting passes by running `yarn lint` x-ref: #32255 x-ref: #32252 x-ref: #30822
This updates our docker example to leverage the output traces and standalone build to reduce the resulting docker image quite a bit. docker image size before: `272MB` docker image size after: `121MB` node-14:alpine size (base image): `118MB` ## Documentation / Examples - [x] Make sure the linting passes by running `yarn lint` x-ref: vercel#32255 x-ref: vercel#32252 x-ref: vercel#30822
This adds documentation to explain how the
outputStandalone
config can be leveraged to reduce production deployment size and leverage the output file traces. This also adds a note for theoutputFileTracingRoot
config as it may be needed in some monorepo setups.A follow-up PR will update our Docker example to leverage this config as well.
Documentation / Examples
yarn lint
x-ref: #31003
x-ref: #32252
Closes: #30822