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

Nuxt not building due to upstream @babel/preset-env change #8882

Closed
tkrause opened this issue Feb 23, 2021 · 24 comments
Closed

Nuxt not building due to upstream @babel/preset-env change #8882

tkrause opened this issue Feb 23, 2021 · 24 comments
Assignees

Comments

@tkrause
Copy link

tkrause commented Feb 23, 2021

Versions

  • nuxt: 2.15.1
  • node: 15.0.1

Reproduction

Make a new project and try to build it.

Steps to reproduce

See above

What is Expected?

It should build and show the welcome page.

What is actually happening?

The build fails with the error log.

This is caused by upstream package @babel/preset-env. Starting from version 7.12.17 which is the current minimum version, the utils.js file no longer exists.

To fix this, Nuxt would either need to upgrade to support or lock the package version to 7.12.16. I've done this on my local package.

 ERROR  in ./.nuxt/client.js                                                                                                                                                                                                        friendly-errors 17:55:29

Module build failed (from ./node_modules/babel-loader/lib/index.js):                                                                                                                                                                friendly-errors 17:55:29
Error: /Users/tj/Development/my.springs/.nuxt/client.js: Cannot find module '@babel/preset-env/lib/utils'
Require stack:
- /Users/tj/Development/my.springs/node_modules/@nuxt/babel-preset-app/src/polyfills-plugin.js
- /Users/tj/Development/my.springs/node_modules/@nuxt/babel-preset-app/src/index.js
- /Users/tj/Development/my.springs/node_modules/@babel/core/lib/config/files/module-types.js
- /Users/tj/Development/my.springs/node_modules/@babel/core/lib/config/files/configuration.js
- /Users/tj/Development/my.springs/node_modules/@babel/core/lib/config/files/index.js
- /Users/tj/Development/my.springs/node_modules/@babel/core/lib/index.js
- /Users/tj/Development/my.springs/node_modules/babel-loader/lib/index.js
- /Users/tj/Development/my.springs/node_modules/loader-runner/lib/loadLoader.js
- /Users/tj/Development/my.springs/node_modules/loader-runner/lib/LoaderRunner.js
- /Users/tj/Development/my.springs/node_modules/webpack/lib/NormalModule.js
- /Users/tj/Development/my.springs/node_modules/webpack/lib/NormalModuleFactory.js
- /Users/tj/Development/my.springs/node_modules/webpack/lib/Compiler.js
- /Users/tj/Development/my.springs/node_modules/webpack/lib/webpack.js
- /Users/tj/Development/my.springs/node_modules/@nuxt/webpack/dist/webpack.js
- /Users/tj/Development/my.springs/node_modules/@nuxt/builder/dist/builder.js
- /Users/tj/Development/my.springs/index.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:900:15)
    at Function.Module._load (node:internal/modules/cjs/loader:745:27)
    at Module.require (node:internal/modules/cjs/loader:972:19)
    at n (/Users/tj/Development/my.springs/node_modules/jiti/dist/v8cache.js:2:2364)
    at PluginPass.Program (/Users/tj/Development/my.springs/node_modules/@nuxt/babel-preset-app/src/polyfills-plugin.js:15:34)
    at newFn (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/visitors.js:175:21)
    at NodePath._call (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/path/context.js:55:20)
    at NodePath.call (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/path/context.js:42:17)
    at NodePath.visit (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/path/context.js:92:31)
    at TraversalContext.visitQueue (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/context.js:116:16)
    at TraversalContext.visitSingle (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/context.js:85:19)
    at TraversalContext.visit (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/context.js:144:19)
    at Function.traverse.node (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/index.js:82:17)
    at traverse (/Users/tj/Development/my.springs/node_modules/@babel/traverse/lib/index.js:62:12)
    at transformFile (/Users/tj/Development/my.springs/node_modules/@babel/core/lib/transformation/index.js:107:29)
    at transformFile.next (<anonymous>)
                                                                                                                                                                                                                                    friendly-errors 17:55:29
 @ multi ./node_modules/eventsource-polyfill/dist/browserify-eventsource.js (webpack)-hot-middleware/client.js?reload=true&timeout=30000&ansiColors=&overlayStyles=&path=%2F__webpack_hmr%2Fclient&name=client ./.nuxt/client.js
                                                                                                                                                                                                                                    friendly-errors 17:55:29
@markhoney
Copy link

I've reported this issue to the Babel team: babel/babel#12856

@engmagdy87
Copy link

engmagdy87 commented Feb 23, 2021

the same for me but for nuxt version 2.14.6

TooTallNate added a commit to vercel/vercel that referenced this issue Feb 23, 2021
`@babel/preset-env` shipped a change that broke Nuxt.js usage of the
module, so here we add a `yarn.lock` file that pins the preset-env
version to 7.12.17.

See: nuxt/nuxt#8882
TooTallNate added a commit to vercel/vercel that referenced this issue Feb 23, 2021
`@babel/preset-env` shipped a change that broke Nuxt.js usage of the
module, so here we add a `yarn.lock` file that pins the preset-env
version to 7.12.17.

See: nuxt/nuxt#8882
@OysterD3
Copy link

Any workaround at the moment?

@TooTallNate
Copy link

Workaround is to pin @babel/preset-env to version 7.12.17 in the yarn.lock file using resolutions.

@OysterD3
Copy link

OysterD3 commented Feb 23, 2021

Workaround is to pin @babel/preset-env to version 7.12.17 in the yarn.lock file using resolutions.

Doesn't work either

EDIT: My bad, I used @babel/core instead of @babel/preset-env. It works! Thanks

@jrcichra
Copy link

Worked for me:

  "resolutions": {
    "@babel/preset-env": "7.12.17"
  }

@thederekkaplan
Copy link

Is there a workaround for people using npm instead of yarn?

@OysterD3
Copy link

@thederekkaplan npm doesn't support natively, but you can check this package

@0214ggyy
Copy link

@tkrause
Delete initialization uninstall @babel/preset-env install specified version @babel/preset-env@7.12.17

@rallz-dev
Copy link

rallz-dev commented Feb 23, 2021

@thederekkaplan , I found the answer here by hzoo.
Basically have your dependencies look like this

"dependencies": { "core-js": "^3.8.3", "nuxt": "^2.14.12", **"@babel/preset-env": "~7.12.0"** },

it should do the trick.

@bhskt
Copy link

bhskt commented Feb 23, 2021

Following

@vebr
Copy link

vebr commented Feb 23, 2021

Worked from me:

Add this on devDependencies:

"@babel/preset-env": "7.12.17"

or

Workaround is to pin @babel/preset-env to version 7.12.17 in the yarn.lock file using resolutions.

Install corejs@3

yarn add --dev core-js@3 @babel/runtime-corejs3

and update build.babel in nuxt.config.js

babel: {
        presets() {
          return [
            [
              '@nuxt/babel-preset-app',
              {
                corejs: {
                  version: 3,
                },
              },
            ],
          ];
        },

@hosseintaromi
Copy link

Worked from me:

Add this on devDependencies:

"@babel/preset-env": "7.12.17"

or

Workaround is to pin @babel/preset-env to version 7.12.17 in the yarn.lock file using resolutions.

Install corejs@3

yarn add --dev core-js@3 @babel/runtime-corejs3

and update build.babel in nuxt.config.js

babel: {
        presets() {
          return [
            [
              '@nuxt/babel-preset-app',
              {
                corejs: {
                  version: 3,
                },
              },
            ],
          ];
        },

yes it works for me 👍

@pi0 pi0 self-assigned this Feb 23, 2021
@pi0
Copy link
Member

pi0 commented Feb 23, 2021

Thanks for report. Issue is solved in 2.15.2 by pinning @babel-preset/env to ~7.12 until properly upgrading.


If for any reason cannot upgrade to 2.15, you can use resolutions field in package.json (requires using yarnpkg):

  "resolutions": {
    "@babel/preset-env": "~7.12.17"
  }

If using npm, should additionally use npm-force-resolutions

"scripts": {
  "preinstall": "npx npm-force-resolutions"
}

@mainrs
Copy link

mainrs commented Feb 23, 2021

Following

FYI, you can just press the subscribe button on the right side, no need to comment ;)

@jjhesk
Copy link

jjhesk commented Feb 23, 2021

@thederekkaplan , I found the answer here by hzoo.
Basically have your dependencies look like this

"dependencies": { "core-js": "^3.8.3", "nuxt": "^2.14.12", **"@babel/preset-env": "~7.12.0"** },

it should do the trick.

now only this one is working for me, I am using cnpm without yarn nor npm..

@jsen1024
Copy link

jsen1024 commented Feb 25, 2021

https://stackoverflow.com/questions/66325582/nuxt-js-cannot-find-module-babel-preset-env-lib-utils/66364437#66364437

You can try to do:

// package.json
"devDependencies": {
   + "@babel/preset-env": "7.12.17",
    "cross-env": "^5.2.0",
    "css-loader": "^3.2.0",
    "node-sass": "^4.14.1",
    "sass-loader": "^8.0.2",
    "style-loader": "^1.0.0"
  },

// package-lock.json
  "@babel/preset-env": {
      +"version": "7.12.17",
     ...,
     "@nuxt/babel-preset-app": {
        "requires": {
           "@babel/preset-env": "7.12.17",
           ...
         }
     }
   }

@VitorSavedra
Copy link

Thanks for report. Issue is solved in 2.15.2 by pinning @babel-preset/env to ~7.12 until properly upgrading.

If for any reason cannot upgrade to 2.15, you can use resolutions field in package.json (requires using yarnpkg):

  "resolutions": {
    "@babel/preset-env": "~7.12.17"
  }

If using npm, should additionally use npm-force-resolutions

"scripts": {
  "preinstall": "npx npm-force-resolutions"
}

Works for me! :)
Tks.

@pi0
Copy link
Member

pi0 commented Feb 25, 2021

Just to clarify status of this issue it is fixed in latest versions of both preset-env and nuxt. So it is recommended to recreate-lock file and use latest versions and avoid pinning to 7.12 :)

@n1ngu
Copy link

n1ngu commented Mar 3, 2021

Thank you all.

I may be still astray, shouldn't this 173f48b be reverted? @nuxt/babel-preset-app==2.15.2 keeps requiring @babel/preset-env~7.12.17

This was referenced Mar 15, 2021
indirectlylit added a commit to indirectlylit/kolibri-design-system that referenced this issue Sep 15, 2021
@Mosavi87
Copy link

Mosavi87 commented Jun 10, 2023

you can run this comment for this issue

yarn add @babel/plugin-proposal-private-property-in-object --dev

or

npm install @babel/plugin-proposal-private-property-in-object --dev

@0214ggyy
Copy link

0214ggyy commented Jun 10, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests