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

babelPresetPlugins coerced to an array #10153

Closed

Conversation

seryl
Copy link

@seryl seryl commented Jan 18, 2020

I was seeing the following error when using a monorepo style repository with a shared components directory outside of the src/* within the next application.

[ error ] /home/jtoft/src/pack/web/components/markdown/index.ts
TypeError: babelPresetPlugins is not iterable
    at Generator.next (<anonymous>)
    at runMicrotasks (<anonymous>)
ModuleBuildError: Module build failed (from ./node_modules/next/dist/build/webpack/loaders/next-babel-loader.js):
TypeError: babelPresetPlugins is not iterable
    at Object.config (/home/jtoft/src/pack/web/sites/website/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js:9:193)
    at Object.<anonymous> (/home/jtoft/src/pack/web/node_modules/babel-loader/lib/index.js:150:42)
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/home/jtoft/src/pack/web/node_modules/babel-loader/lib/index.js:3:103)
    at _next (/home/jtoft/src/pack/web/node_modules/babel-loader/lib/index.js:5:194)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at /home/jtoft/src/pack/web/sites/website/node_modules/next/node_modules/webpack/lib/NormalModule.js:316:20
    at /home/jtoft/src/pack/web/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /home/jtoft/src/pack/web/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/home/jtoft/src/pack/web/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /home/jtoft/src/pack/web/node_modules/babel-loader/lib/index.js:55:103
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

It works fine with 9.1.2 and below, but this doesn't seem to work afterwards.

I'm not sure if this is the best way to solve this or if there's really a good way to write a test to validate this problem; but I'm happy to do it if I can get some direction.

I'm assuming that the actual error is likely because the options for paths outside of the pages or src directories don't include a set of sane default options.

The included patch addresses the failure I was seeing and also produces proper production // static builds afterwards.

@ijjk
Copy link
Member

ijjk commented Jan 18, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins Change
buildDuration 12.6s 12.5s -114ms
nodeModulesSize 48.9 MB 48.9 MB ⚠️ +12 B
Client Bundles (main, webpack, commons)
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins Change
main-HASH.js gzip 5.11 kB 5.11 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..8249.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 seryl/next.js check-for-undefined-babelPresetPlugins Change
main-HASH.module.js gzip 4.17 kB 4.17 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 seryl/next.js check-for-undefined-babelPresetPlugins 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_app.js gzip 1.34 kB 1.34 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_app.module.js gzip 769 B 769 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.42 kB 7.42 kB
Client Build Manifests
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins 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 seryl/next.js check-for-undefined-babelPresetPlugins 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.08 kB 3.08 kB

Serverless Mode
General Overall increase ⚠️
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins Change
buildDuration 13.1s 13s -134ms
nodeModulesSize 48.9 MB 48.9 MB ⚠️ +12 B
Client Bundles (main, webpack, commons)
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins Change
main-HASH.js gzip 5.11 kB 5.11 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..8249.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 seryl/next.js check-for-undefined-babelPresetPlugins Change
main-HASH.module.js gzip 4.17 kB 4.17 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 seryl/next.js check-for-undefined-babelPresetPlugins 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_app.js gzip 1.34 kB 1.34 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_app.module.js gzip 769 B 769 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.42 kB 7.42 kB
Client Build Manifests
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_error.js gzip 70.9 kB 70.9 kB
hooks.html gzip 1.06 kB 1.06 kB
index.js gzip 71.3 kB 71.3 kB
link.js gzip 80.6 kB 80.6 kB
routerDirect.js gzip 78.2 kB 78.2 kB
withRouter.js gzip 78.3 kB 78.3 kB
Overall change 380 kB 380 kB

Commit: 839299f

@seryl seryl force-pushed the check-for-undefined-babelPresetPlugins branch from 839299f to 810793b Compare January 18, 2020 18:52
@ijjk
Copy link
Member

ijjk commented Jan 18, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins Change
buildDuration 11.9s 12.1s ⚠️ +136ms
nodeModulesSize 48.9 MB 48.9 MB ⚠️ +10 B
Client Bundles (main, webpack, commons)
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins Change
main-HASH.js gzip 5.11 kB 5.11 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..8249.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 seryl/next.js check-for-undefined-babelPresetPlugins Change
main-HASH.module.js gzip 4.17 kB 4.17 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 seryl/next.js check-for-undefined-babelPresetPlugins 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_app.js gzip 1.34 kB 1.34 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_app.module.js gzip 769 B 769 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.42 kB 7.42 kB
Client Build Manifests
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins 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 seryl/next.js check-for-undefined-babelPresetPlugins 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.08 kB 3.08 kB

Serverless Mode
General Overall increase ⚠️
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins Change
buildDuration 12.7s 12.6s -32ms
nodeModulesSize 48.9 MB 48.9 MB ⚠️ +10 B
Client Bundles (main, webpack, commons)
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins Change
main-HASH.js gzip 5.11 kB 5.11 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..8249.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 seryl/next.js check-for-undefined-babelPresetPlugins Change
main-HASH.module.js gzip 4.17 kB 4.17 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 seryl/next.js check-for-undefined-babelPresetPlugins 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_app.js gzip 1.34 kB 1.34 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_app.module.js gzip 769 B 769 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.42 kB 7.42 kB
Client Build Manifests
zeit/next.js canary seryl/next.js check-for-undefined-babelPresetPlugins 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 seryl/next.js check-for-undefined-babelPresetPlugins Change
_error.js gzip 70.9 kB 70.9 kB
hooks.html gzip 1.06 kB 1.06 kB
index.js gzip 71.3 kB 71.3 kB
link.js gzip 80.6 kB 80.6 kB
routerDirect.js gzip 78.2 kB 78.2 kB
withRouter.js gzip 78.3 kB 78.3 kB
Overall change 380 kB 380 kB

Commit: 810793b

@seryl
Copy link
Author

seryl commented Jan 18, 2020

To give a little more background here;

the base repository is a lerna repo with:

components/*
sites/*

Where next.js apps reside under sites, and shared // reusable components sit under components.

@timneutkens
Copy link
Member

Please create an issue first following the issue template, outlining what exactly the issue is that you're running into including a full github repository to reproduce the issue. Then we can consider changing code. The code change that you made is an internal method btw.

@seryl
Copy link
Author

seryl commented Jan 23, 2020

Added repository as requested

@evantahler
Copy link
Contributor

This would be a great addition for folks that have monorepos that share components...

@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.

None yet

4 participants