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
Strictly match next/dist
in externals configuration
#9956
Conversation
…t`, `react-i18next` to be external fixes #9022
next/dist
next/dist
to be external in server bundle
Stats from current PRDefault Server ModeGeneral Overall increase
|
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
buildDuration | 13.5s | 13.6s | |
nodeModulesSize | 48.9 MB | 48.9 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | felixmosh/next.js fix-9022 | 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..4cf7.js gzip | 13.7 kB | 13.7 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 67.5 kB | 67.5 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.19 kB | 4.19 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.5 kB | 12.5 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 62.1 kB | 62.1 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | felixmosh/next.js fix-9022 | 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 | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_app.js gzip | 1.33 kB | 1.33 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.9 kB | 2.9 kB | ✓ |
routerDirect.js gzip | 283 B | 283 B | ✓ |
withRouter.js gzip | 282 B | 282 B | ✓ |
Overall change | 9.87 kB | 9.87 kB | ✓ |
Client Pages Modern
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_app.module.js gzip | 757 B | 757 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.47 kB | 2.47 kB | ✓ |
routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
Overall change | 7.41 kB | 7.41 kB | ✓ |
Client Build Manifests
zeit/next.js canary | felixmosh/next.js fix-9022 | 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 | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
index.html gzip | 1.02 kB | 1.02 kB | ✓ |
link.html gzip | 1.03 kB | 1.03 kB | ✓ |
withRouter.html gzip | 1.02 kB | 1.02 kB | ✓ |
Overall change | 3.07 kB | 3.07 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
buildDuration | 13.9s | 14s | |
nodeModulesSize | 48.9 MB | 48.9 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | felixmosh/next.js fix-9022 | 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..4cf7.js gzip | 13.7 kB | 13.7 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 67.5 kB | 67.5 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.19 kB | 4.19 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.5 kB | 12.5 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 62.1 kB | 62.1 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | felixmosh/next.js fix-9022 | 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 | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_app.js gzip | 1.33 kB | 1.33 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.9 kB | 2.9 kB | ✓ |
routerDirect.js gzip | 283 B | 283 B | ✓ |
withRouter.js gzip | 282 B | 282 B | ✓ |
Overall change | 9.87 kB | 9.87 kB | ✓ |
Client Pages Modern
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_app.module.js gzip | 757 B | 757 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.47 kB | 2.47 kB | ✓ |
routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
Overall change | 7.41 kB | 7.41 kB | ✓ |
Client Build Manifests
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 122 B | 122 B | ✓ |
Serverless bundles
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_error.js gzip | 77.8 kB | 77.8 kB | ✓ |
hooks.html gzip | 1.06 kB | 1.06 kB | ✓ |
index.js gzip | 78 kB | 78 kB | ✓ |
link.js gzip | 80.4 kB | 80.4 kB | ✓ |
routerDirect.js gzip | 78.1 kB | 78.1 kB | ✓ |
withRouter.js gzip | 78.1 kB | 78.1 kB | ✓ |
Overall change | 393 kB | 393 kB | ✓ |
Commit: 7289e1f
I did some investigating on #9022 and this does not fix the case that is described in the initial issue as that one is related to how React is resolved. However I'd argue that the case described in the initial issue is a wrong project structure (deps not available) and that what you've fixed here is more important 👍 |
I had the same error as #9022 when updating to ^9.06, as I've wrote in the comment #9022 (comment), it is an issue of combination of 2 things, usage of sym-link & the fact that these libs had multiple instance in side server bundle... I've tested, if one of the conditions is not apply, the bug is not reproduces. |
Could you add a test for this? Then we can ensure it keeps working. |
Sure, @timneutkens can you suggest where to start? in which folder? how I can add an external dependency that has |
I can confirm this PR does not fix #9022 in my case. See my #9022 (comment). @timneutkens I wouldn’t say this is a result of a wrong project structure, but rather an unusual project structure. However, I’m not the only one as can be seen in the original issue. |
I've double checked, it solves the issue that I had. |
@felixmosh your case is fine and this PR will definitely fix it. Baldur's case is that there is no node_modules folder outside of the subdirectory and that causes React to not be resolved. Then an alias was added to next.config.js but that doesn't work as expected. Particularly what changed that caused that issue in particular is yarn PnP support. Note that if you have a Node.js project and you would |
@timneutkens good point about Node.js. I guess you are right 😅 |
next/dist
to be external in server bundlenext/dist
in externals configuration
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.
I'll handle the tests, thanks!
Stats from current PRDefault Server ModeGeneral Overall increase
|
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
buildDuration | 13.1s | 13.1s | |
nodeModulesSize | 48.9 MB | 48.9 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | felixmosh/next.js fix-9022 | 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..4cf7.js gzip | 13.7 kB | 13.7 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 67.5 kB | 67.5 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.19 kB | 4.19 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.5 kB | 12.5 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 62.1 kB | 62.1 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | felixmosh/next.js fix-9022 | 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 | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_app.js gzip | 1.33 kB | 1.33 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.9 kB | 2.9 kB | ✓ |
routerDirect.js gzip | 283 B | 283 B | ✓ |
withRouter.js gzip | 282 B | 282 B | ✓ |
Overall change | 9.87 kB | 9.87 kB | ✓ |
Client Pages Modern
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_app.module.js gzip | 757 B | 757 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.47 kB | 2.47 kB | ✓ |
routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
Overall change | 7.41 kB | 7.41 kB | ✓ |
Client Build Manifests
zeit/next.js canary | felixmosh/next.js fix-9022 | 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 | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
index.html gzip | 1.02 kB | 1.02 kB | ✓ |
link.html gzip | 1.03 kB | 1.03 kB | ✓ |
withRouter.html gzip | 1.02 kB | 1.02 kB | ✓ |
Overall change | 3.07 kB | 3.07 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
buildDuration | 13.7s | 13.6s | -42ms |
nodeModulesSize | 48.9 MB | 48.9 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | felixmosh/next.js fix-9022 | 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..4cf7.js gzip | 13.7 kB | 13.7 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 67.5 kB | 67.5 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.19 kB | 4.19 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.5 kB | 12.5 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 62.1 kB | 62.1 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | felixmosh/next.js fix-9022 | 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 | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_app.js gzip | 1.33 kB | 1.33 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.9 kB | 2.9 kB | ✓ |
routerDirect.js gzip | 283 B | 283 B | ✓ |
withRouter.js gzip | 282 B | 282 B | ✓ |
Overall change | 9.87 kB | 9.87 kB | ✓ |
Client Pages Modern
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_app.module.js gzip | 757 B | 757 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.47 kB | 2.47 kB | ✓ |
routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
Overall change | 7.41 kB | 7.41 kB | ✓ |
Client Build Manifests
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 122 B | 122 B | ✓ |
Serverless bundles
zeit/next.js canary | felixmosh/next.js fix-9022 | Change | |
---|---|---|---|
_error.js gzip | 77.8 kB | 77.8 kB | ✓ |
hooks.html gzip | 1.05 kB | 1.05 kB | ✓ |
index.js gzip | 78 kB | 78 kB | ✓ |
link.js gzip | 80.4 kB | 80.4 kB | ✓ |
routerDirect.js gzip | 78.1 kB | 78.1 kB | ✓ |
withRouter.js gzip | 78.1 kB | 78.1 kB | ✓ |
Overall change | 393 kB | 393 kB | ✓ |
Commit: ae44d77
Test added in #9968 |
Released as |
@tim-phillips I'm watching #9022 because I've setup my project following the sample NextJS with Firebase Hosting. As soon as I install React Bootstrap or React Material I get this error cause I end up with multiple react instances. I would suggest to keep #9022 open or at least update the documentation with a better solution. It's a very common scenario libraries like the above to be used alongside React and the proposed Firebase file structure doesn't allow this at the moment. |
such as
i18next
,next-i18next
,react-i18next
to be externalfixes #9022