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

Allow passing options to @babel/preset-typescript #9255

Closed

Conversation

TimonVS
Copy link

@TimonVS TimonVS commented Oct 30, 2019

I'm porting an existing React/TypeScript application which is making use of TS namespaces to Next.js. I found out that @babel/preset-typescript could not be configured and thus I was unabled to enable the allowNamespaces option. This PR adds the ability to pass options to @babel/preset-typescript.

Fixes: #8900

@ijjk
Copy link
Member

ijjk commented Oct 30, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
buildDuration 16s 15.2s -775ms
nodeModulesSize 48.4 MB 48.4 MB ⚠️ +128 B
Client Bundles (main, webpack, commons)
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
main-HASH.js 16.6 kB 16.6 kB
main-HASH.js gzip 5.86 kB 5.86 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..63e75d588.js 19.7 kB 19.7 kB
16b1a7225520..d588.js gzip 7.23 kB 7.23 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..9e9c1d310.js 28.6 kB 28.6 kB
de003c3a9d30..d310.js gzip 10.8 kB 10.8 kB
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
Overall change 214 kB 214 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
main-HASH.module.js 14 kB 14 kB
main-HASH.module.js gzip 5.26 kB 5.26 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..51.module.js 15.8 kB 15.8 kB
16b1a7225520..dule.js gzip 6.06 kB 6.06 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..c0.module.js 22.1 kB 22.1 kB
de003c3a9d30..dule.js gzip 8.67 kB 8.67 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 192 kB 192 kB
Client Pages
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
_app.module.js 1.53 kB 1.53 kB
_app.module.js gzip 749 B 749 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.47 kB 5.47 kB
link.module.js gzip 2.46 kB 2.46 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.1 kB 20.1 kB
Client Build Manifests
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 199 B 199 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 210 B 210 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
index.html 3.94 kB 3.94 kB
index.html gzip 1 kB 1 kB
link.html 4.47 kB 4.47 kB
link.html gzip 1.08 kB 1.08 kB
withRouter.html 4.47 kB 4.47 kB
withRouter.html gzip 1.07 kB 1.07 kB
Overall change 12.9 kB 12.9 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
buildDuration 15.6s 15.6s -65ms
nodeModulesSize 48.4 MB 48.4 MB ⚠️ +128 B
Client Bundles (main, webpack, commons)
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
main-HASH.js 16.6 kB 16.6 kB
main-HASH.js gzip 5.86 kB 5.86 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..63e75d588.js 19.7 kB 19.7 kB
16b1a7225520..d588.js gzip 7.23 kB 7.23 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..9e9c1d310.js 28.6 kB 28.6 kB
de003c3a9d30..d310.js gzip 10.8 kB 10.8 kB
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
Overall change 214 kB 214 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
main-HASH.module.js 14 kB 14 kB
main-HASH.module.js gzip 5.26 kB 5.26 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..51.module.js 15.8 kB 15.8 kB
16b1a7225520..dule.js gzip 6.06 kB 6.06 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..c0.module.js 22.1 kB 22.1 kB
de003c3a9d30..dule.js gzip 8.67 kB 8.67 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 192 kB 192 kB
Client Pages
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
_app.module.js 1.53 kB 1.53 kB
_app.module.js gzip 749 B 749 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.47 kB 5.47 kB
link.module.js gzip 2.46 kB 2.46 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.1 kB 20.1 kB
Client Build Manifests
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 199 B 199 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 210 B 210 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary TimonVS/next.js feature/preset-typescript-config Change
_error.js 241 kB 241 kB
_error.js gzip 64.4 kB 64.4 kB
hooks.html 4.08 kB 4.08 kB
hooks.html gzip 1.03 kB 1.03 kB
index.js 241 kB 241 kB
index.js gzip 64.5 kB 64.5 kB
link.js 274 kB 274 kB
link.js gzip 73.5 kB 73.5 kB
routerDirect.js 267 kB 267 kB
routerDirect.js gzip 71.5 kB 71.5 kB
withRouter.js 267 kB 267 kB
withRouter.js gzip 71.6 kB 71.6 kB
Overall change 1.29 MB 1.29 MB

Commit: 49cdd9d

@timneutkens
Copy link
Member

Should this be a default instead of a configuration option? cc @Timer

@Timer
Copy link
Member

Timer commented Oct 31, 2019

@timneutkens the feature is currently experimental.

From the PR:

Conclusion: To be safe (and per PR author), we're going to release this under a flag (allowNamespaces) until it's deemed ready. We plan on enabling this feature by default in a future release.

The warning that tells people to enable this:
https://github.com/babel/babel/pull/9785/files#diff-2612ca1ca4e0583fd96d3cba1d3832fdR13

Currently, it's a flat out error. It might not hurt to turn it on, even if experimental. It seems to have pretty good test coverage.

@Timer Timer added this to the 9.1.3 milestone Nov 4, 2019
@Timer Timer closed this in #9308 Nov 4, 2019
@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 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.

Namespaces not supported in next/babel for preset-typescript: 7.3.3
4 participants