Skip to content
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

Experimental: Serverless Trace target #8246

Merged
merged 14 commits into from
Aug 5, 2019
Merged

Conversation

Timer
Copy link
Member

@Timer Timer commented Aug 5, 2019

The Serverless Trace target produces Serverless-handler wrapped entrypoints, but does not bundle all of node_modules.

This behavior increases bundling performance to be more akin to target: 'server'.

This mode is expected to be used with smart platforms (like ZEIT Now) that can trace a program to its minimum dependencies.

TODO:


Fixes #7758
Closes #7512
Closes #7391
Closes #6655
Closes #7821
Closes #7933

The Serverless Trace target produces Serverless-handler wrapped entrypoints, but does not bundle all of `node_modules`.

This behavior increases bundling performance to be more akin to `target: 'server'`.

This mode is expected to be used with smart platforms (like [ZEIT Now](https://zeit.co/now) that can trace a program to its minimum dependencies.
@Timer Timer added this to the 9.1.0 milestone Aug 5, 2019
@ijjk
Copy link
Member

ijjk commented Aug 5, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary Timer/next.js serverless-trace Change
Build Duration 13.9s 13.8s -102ms
node_modules Size 43.6 MB 43.6 MB ⚠��� +2.47 kB
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary Timer/next.js serverless-trace Change
Build Duration 14.9s 14.7s -170ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +2.47 kB
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Serverless pages/link Size 251 kB 251 kB
Serverless pages/link gzip Size 67.8 kB 67.8 kB
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.6 kB 65.6 kB
Serverless pages/_error Size 243 kB 243 kB
Serverless pages/_error gzip Size 65.4 kB 65.4 kB
Serverless pages/routerDirect Size 244 kB 244 kB
Serverless pages/routerDirect gzip Size 65.6 kB 65.6 kB -1 B
Serverless pages/withRouter Size 244 kB 244 kB
Serverless pages/withRouter gzip Size 65.7 kB 65.7 kB -1 B
Build Dir Size 1.89 MB 1.89 MB
@ijjk
Copy link
Member

ijjk commented Aug 5, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary Timer/next.js serverless-trace Change
Build Duration 13.4s 13.3s -116ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +2.54 kB
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB -1 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB -1 B
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 300 B -1 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary Timer/next.js serverless-trace Change
Build Duration 14.3s 14.5s ⚠️ +174ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +2.54 kB
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Serverless pages/link Size 251 kB 251 kB
Serverless pages/link gzip Size 67.8 kB 67.8 kB
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.6 kB 65.6 kB ⚠️ +1 B
Serverless pages/_error Size 243 kB 243 kB
Serverless pages/_error gzip Size 65.4 kB 65.4 kB
Serverless pages/routerDirect Size 244 kB 244 kB
Serverless pages/routerDirect gzip Size 65.6 kB 65.6 kB -1 B
Serverless pages/withRouter Size 244 kB 244 kB
Serverless pages/withRouter gzip Size 65.7 kB 65.7 kB
Build Dir Size 1.89 MB 1.89 MB
Co-Authored-By: JJ Kasper <jj@jjsweb.site>
packages/next/build/entries.ts Outdated Show resolved Hide resolved
@ijjk
Copy link
Member

ijjk commented Aug 5, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary Timer/next.js serverless-trace Change
Build Duration 13.9s 13.5s -335ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +2.53 kB
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB ⚠️ +1 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB ⚠️ +1 B
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 300 B 301 B ⚠️ +1 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary Timer/next.js serverless-trace Change
Build Duration 15.5s 14.9s -548ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +2.53 kB
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Serverless pages/link Size 251 kB 251 kB
Serverless pages/link gzip Size 67.8 kB 67.8 kB ⚠️ +2 B
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.6 kB 65.6 kB ⚠️ +2 B
Serverless pages/_error Size 243 kB 243 kB
Serverless pages/_error gzip Size 65.4 kB 65.4 kB ⚠️ +2 B
Serverless pages/routerDirect Size 244 kB 244 kB
Serverless pages/routerDirect gzip Size 65.6 kB 65.6 kB ⚠️ +2 B
Serverless pages/withRouter Size 244 kB 244 kB
Serverless pages/withRouter gzip Size 65.7 kB 65.7 kB
Build Dir Size 1.89 MB 1.89 MB
packages/next/export/index.js Outdated Show resolved Hide resolved
packages/next/build/entries.ts Outdated Show resolved Hide resolved
packages/next/build/index.ts Outdated Show resolved Hide resolved
packages/next/build/index.ts Outdated Show resolved Hide resolved
@ijjk
Copy link
Member

ijjk commented Aug 5, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary Timer/next.js serverless-trace Change
Build Duration 13.7s 13.6s -103ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +3.54 kB
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary Timer/next.js serverless-trace Change
Build Duration 14.8s 14.7s -137ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +3.54 kB
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Serverless pages/link Size 251 kB 251 kB
Serverless pages/link gzip Size 67.8 kB 67.8 kB -1 B
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.6 kB 65.6 kB ⚠️ +1 B
Serverless pages/_error Size 243 kB 243 kB
Serverless pages/_error gzip Size 65.4 kB 65.4 kB
Serverless pages/routerDirect Size 244 kB 244 kB
Serverless pages/routerDirect gzip Size 65.6 kB 65.6 kB
Serverless pages/withRouter Size 244 kB 244 kB
Serverless pages/withRouter gzip Size 65.7 kB 65.7 kB
Build Dir Size 1.89 MB 1.89 MB
Co-Authored-By: JJ Kasper <jj@jjsweb.site>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
2 participants