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

Add initial support for new env handling #10525

Merged
merged 41 commits into from
Mar 26, 2020
Merged

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Feb 13, 2020

Note: this is still experimental.

Implements #11106

Can be enabled under the experimental flag:

module.exports = {
  experimental: {
    pageEnv: true
  }
}

@ijjk ijjk added this to the 9.2.x milestone Feb 13, 2020
@ijjk
Copy link
Member Author

ijjk commented Feb 13, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 11.2s 11.1s -56ms
nodeModulesSize 52.9 MB 52.9 MB ⚠️ +8.41 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..c95c.js gzip 13.6 kB 13.6 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 67.4 kB 67.4 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 12.4 kB 12.4 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 62 kB 62 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/new-env Change
index.html gzip 1.03 kB 1.03 kB
link.html gzip 1.04 kB 1.04 kB
withRouter.html gzip 1.03 kB 1.03 kB
Overall change 3.11 kB 3.11 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 12s 11.8s -194ms
nodeModulesSize 52.9 MB 52.9 MB ⚠️ +8.41 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..c95c.js gzip 13.6 kB 13.6 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 67.4 kB 67.4 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 12.4 kB 12.4 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 62 kB 62 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
_error.js gzip 289 kB 289 kB ⚠️ +124 B
404.html gzip 1.44 kB 1.44 kB
hooks.html gzip 1.08 kB 1.08 kB
index.js gzip 289 kB 290 kB ⚠️ +103 B
link.js gzip 319 kB 320 kB ⚠️ +327 B
routerDirect.js gzip 315 kB 316 kB ⚠️ +969 B
withRouter.js gzip 315 kB 316 kB ⚠️ +819 B
Overall change 1.53 MB 1.53 MB ⚠️ +2.34 kB

Commit: f369d2d

@ijjk
Copy link
Member Author

ijjk commented Feb 13, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 11.6s 11.5s -64ms
nodeModulesSize 52.9 MB 52.9 MB ⚠️ +8.41 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..c95c.js gzip 13.6 kB 13.6 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 67.4 kB 67.4 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 12.4 kB 12.4 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 62 kB 62 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/new-env Change
index.html gzip 1.03 kB 1.03 kB
link.html gzip 1.04 kB 1.04 kB
withRouter.html gzip 1.03 kB 1.03 kB
Overall change 3.11 kB 3.11 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 12.5s 12.5s -59ms
nodeModulesSize 52.9 MB 52.9 MB ⚠️ +8.41 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..c95c.js gzip 13.6 kB 13.6 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 67.4 kB 67.4 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 12.4 kB 12.4 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 62 kB 62 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
_error.js gzip 289 kB 290 kB ⚠️ +447 B
404.html gzip 1.44 kB 1.44 kB
hooks.html gzip 1.08 kB 1.08 kB
index.js gzip 289 kB 290 kB ⚠️ +152 B
link.js gzip 319 kB 320 kB ⚠️ +564 B
routerDirect.js gzip 316 kB 317 kB ⚠️ +243 B
withRouter.js gzip 316 kB 316 kB -452 B
Overall change 1.53 MB 1.53 MB ⚠️ +954 B

Commit: f12ac4c

@ijjk
Copy link
Member Author

ijjk commented Feb 13, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 11.6s 12s ⚠️ +374ms
nodeModulesSize 52.8 MB 52.8 MB ⚠️ +8.41 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d239.js gzip 16.2 kB 16.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.6 kB 64.6 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/new-env Change
index.html gzip 1.03 kB 1.03 kB
link.html gzip 1.04 kB 1.04 kB
withRouter.html gzip 1.03 kB 1.03 kB
Overall change 3.11 kB 3.11 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 12.9s 12.7s -160ms
nodeModulesSize 52.8 MB 52.8 MB ⚠️ +8.41 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d239.js gzip 16.2 kB 16.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.6 kB 64.6 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
_error.js gzip 290 kB 289 kB -428 B
404.html gzip 1.44 kB 1.44 kB
hooks.html gzip 1.08 kB 1.08 kB
index.js gzip 289 kB 290 kB ⚠️ +1.05 kB
link.js gzip 319 kB 319 kB -1 B
routerDirect.js gzip 317 kB 317 kB ⚠️ +329 B
withRouter.js gzip 316 kB 316 kB ⚠️ +625 B
Overall change 1.53 MB 1.53 MB ⚠️ +1.58 kB

Commit: 3e3878a

@ijjk ijjk marked this pull request as ready for review February 14, 2020 04:17
@ijjk ijjk requested a review from lfades as a code owner February 14, 2020 04:17
@ijjk
Copy link
Member Author

ijjk commented Feb 14, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 13.4s 13.7s ⚠️ +278ms
nodeModulesSize 52.8 MB 52.8 MB ⚠️ +32.6 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d239.js gzip 16.2 kB 16.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.6 kB 64.6 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/new-env Change
index.html gzip 1.03 kB 1.03 kB
link.html gzip 1.04 kB 1.04 kB
withRouter.html gzip 1.03 kB 1.03 kB
Overall change 3.11 kB 3.11 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 14.5s 14.4s -66ms
nodeModulesSize 52.8 MB 52.8 MB ⚠️ +32.6 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d239.js gzip 16.2 kB 16.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.6 kB 64.6 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary ijjk/next.js add/new-env Change
_error.js gzip 289 kB 290 kB ⚠️ +451 B
404.html gzip 1.44 kB 1.44 kB
hooks.html gzip 1.08 kB 1.08 kB
index.js gzip 290 kB 289 kB -644 B
link.js gzip 319 kB 319 kB -384 B
routerDirect.js gzip 316 kB 317 kB ⚠️ +501 B
withRouter.js gzip 316 kB 316 kB -72 B
Overall change 1.53 MB 1.53 MB -148 B

Commit: f0d817a

@ijjk
Copy link
Member Author

ijjk commented Feb 14, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 9.4s 9.6s ⚠️ +122ms
nodeModulesSize 52.8 MB 52.8 MB ⚠️ +12.8 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d239.js gzip 16.2 kB 16.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.6 kB 64.6 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/new-env Change
index.html gzip 1.03 kB 1.03 kB
link.html gzip 1.04 kB 1.04 kB
withRouter.html gzip 1.03 kB 1.03 kB
Overall change 3.11 kB 3.11 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 10.2s 10.3s ⚠️ +44ms
nodeModulesSize 52.8 MB 52.8 MB ⚠️ +12.8 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d239.js gzip 16.2 kB 16.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.6 kB 64.6 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
_error.js gzip 289 kB 290 kB ⚠️ +252 B
404.html gzip 1.44 kB 1.44 kB
hooks.html gzip 1.08 kB 1.08 kB
index.js gzip 290 kB 290 kB -481 B
link.js gzip 319 kB 319 kB -21 B
routerDirect.js gzip 315 kB 316 kB ⚠️ +966 B
withRouter.js gzip 316 kB 316 kB ⚠️ +123 B
Overall change 1.53 MB 1.53 MB ⚠️ +839 B

Commit: 97f7e56

@ijjk
Copy link
Member Author

ijjk commented Feb 14, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 12.9s 12.6s -325ms
nodeModulesSize 52.8 MB 52.8 MB ⚠️ +12.7 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d239.js gzip 16.2 kB 16.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.6 kB 64.6 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/new-env Change
index.html gzip 1.03 kB 1.03 kB
link.html gzip 1.04 kB 1.04 kB
withRouter.html gzip 1.03 kB 1.03 kB
Overall change 3.11 kB 3.11 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 13.5s 13.6s ⚠️ +42ms
nodeModulesSize 52.8 MB 52.8 MB ⚠️ +12.7 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d239.js gzip 16.2 kB 16.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.13 kB 4.13 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.6 kB 64.6 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.68 kB 9.68 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.22 kB 7.22 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
_error.js gzip 289 kB 289 kB ⚠️ +241 B
404.html gzip 1.44 kB 1.44 kB
hooks.html gzip 1.08 kB 1.08 kB
index.js gzip 290 kB 290 kB -201 B
link.js gzip 319 kB 319 kB ⚠️ +231 B
routerDirect.js gzip 316 kB 316 kB ⚠️ +795 B
withRouter.js gzip 316 kB 316 kB ⚠️ +589 B
Overall change 1.53 MB 1.53 MB ⚠️ +1.66 kB

Commit: 444c401

@ijjk
Copy link
Member Author

ijjk commented Feb 17, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 10.2s 10.5s ⚠️ +255ms
nodeModulesSize 52.7 MB 52.7 MB ⚠️ +12.7 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.14 kB 5.14 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..6894.js gzip 16.3 kB 16.3 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.14 kB 4.14 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.7 kB 64.7 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.95 kB 2.95 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.73 kB 9.73 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.49 kB 2.49 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.25 kB 7.25 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/new-env Change
index.html gzip 1.03 kB 1.03 kB
link.html gzip 1.04 kB 1.04 kB
withRouter.html gzip 1.03 kB 1.03 kB
Overall change 3.11 kB 3.11 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
buildDuration 11.1s 11.4s ⚠️ +339ms
nodeModulesSize 52.7 MB 52.7 MB ⚠️ +12.7 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.js gzip 5.14 kB 5.14 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..6894.js gzip 16.3 kB 16.3 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 70 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/new-env Change
main-HASH.module.js gzip 4.14 kB 4.14 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.7 kB 64.7 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/new-env Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages
zeit/next.js canary ijjk/next.js add/new-env Change
_app.js gzip 1.15 kB 1.15 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.95 kB 2.95 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.73 kB 9.73 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/new-env Change
_app.module.js gzip 576 B 576 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.49 kB 2.49 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.25 kB 7.25 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/new-env Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/new-env Change
_error.js gzip 289 kB 290 kB ⚠️ +881 B
404.html gzip 1.45 kB 1.45 kB
hooks.html gzip 1.08 kB 1.08 kB
index.js gzip 289 kB 290 kB ⚠️ +516 B
link.js gzip 320 kB 320 kB ⚠️ +132 B
routerDirect.js gzip 316 kB 317 kB ⚠️ +473 B
withRouter.js gzip 316 kB 317 kB ⚠️ +139 B
Overall change 1.53 MB 1.54 MB ⚠️ +2.14 kB

Commit: 8ee3eab

@kachkaev
Copy link
Contributor

kachkaev commented Feb 17, 2020

@ijjk have you heard of envalid? Curious if we could use it here or at least get inspired by.


In some of my Next.js projects I have a file called env.config.js, which exports an object with cleaned env variables (result of passing through envalid). When I use those values in next.config.js, I'm not just sure that all my vars are of the right type, but are also of the acceptable value range etc. (common examples are host or port). This is thanks to a rich variety of bult-in validators plus the ability to write custom ones.

If any of my expected env vars is missing or is wrong, there'll be an early exit in env.config.js with a useful message, explaining what I've messed up. What is cool about this approach is that I even get typescript code intellisense and checks if I have --checkJs in tsconfig.json 👀

@timneutkens
Copy link
Member

The config has to be a json file as it'll integrate into tooling hence why it has to be of a certain format and we don't want to introduce extra dependencies (only dotenv).

@kachkaev
Copy link
Contributor

IC. Is the JSON schema you are using somewhat established or specific to Next.js?

@timneutkens
Copy link
Member

timneutkens commented Feb 18, 2020

@kachkaev it ties into Next.js, there's no established solution for this problem as far as I've researched (besides .env but that only covers the loading of environment variables)

@kachkaev
Copy link
Contributor

Just curious, which tooling are you planning to integrate your solution into? If it supports JS, envalid seems to fit too. The problem with JSON it only supports declarative constraints, which makes it hard to check for peculiar things. Of course one can come up with fields with number ranges, regexps (hosts, emails), but there's always a limit and the further the limit, the harder to write declarations. It's hard to beat the ability to call functions for validation, which explains why tools like prettier and eslint support JS in their config files. Perhaps, relying on envalid (or at least allowing JS in validators) is not such a bad thing 🤔

@lifeiscontent
Copy link
Contributor

lifeiscontent commented Mar 14, 2020

@timneutkens @ijjk

it might be interesting to have a little bit of configuration support for env.

e.g

export const config = {
  env: [['NOTION_TOKEN', {required: false}]]
}

this extra syntax allows the developer to say to the facility that is fetching the actual environment variables that if it's not defined, it should throw an error, I've been bitten countless times in large codebases when something in the environment has not been defined.

I'd suggest required should be true by default, you could then send a message to the console to teach the user how to make it optional.

# Conflicts:
#	packages/next/next-server/server/render.tsx
@timneutkens timneutkens merged commit d8155b2 into vercel:canary Mar 26, 2020
@timneutkens timneutkens deleted the add/new-env branch March 26, 2020 12:32
@Timer Timer removed this from the 10.x.x milestone Nov 16, 2020
@vercel vercel locked as resolved and limited conversation to collaborators Jan 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants