Babel Plugin/Preset files are not allowed to export objects, only functions

Babel has been moved its packages into its Scope Repository Since version 7.x .


the last version of babel packages (in main npmjs ) are :

"babel-core": "^6.26.3",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
...

but you have to use The Continued version in @babel/ scoped repository:

by today these are :

"@babel/core": "^7.12.16",
"@babel/preset-env": "^7.12.16",
"@babel/preset-react": "^7.12.13",
...

so you have to uninstall and install them:

npm uninstall babel-core babel-preset-env babel-preset-react
npm install @babel/core @babel/preset-env @babel/preset-react

or :

yarn remove babel-core babel-preset-env babel-preset-react --dev
yarn add @babel/core @babel/preset-env @babel/preset-react --dev

Note 1: you can add a @ and change first - to /

Note 2: note that, The babel-loader package is not in babel package, its a module for webpack to load babel. (it remains bebel-loader with latest version)


after changing babel to its scope you have to make required changes in the .babelrc :

from:

"presets" : ["env","react"]

to :

"presets" : ["@babel/preset-env","@babel/preset-react"]

From your package.json, I can see that you are using older plugins and presets meant for Babel v6, which will result in this error message. You need to switch to e.g., @babel/preset-env, then update your .babelrc accordingly (if you provide .babelrc, more specific guidance can be given).

Here is a related ticket with some explanation - https://github.com/babel/babel-loader/issues/540

A few more semi-related notes on what I see in package.json:

The old babel-core dependency is still there. Remove this or update it to version 7.0.0-bridge.0. Similarly, the old react preset is in there, remove it.

If you are using the env preset, you do not need to use the es2015 preset at all. Remove it.


I got the same error with babel 7.x and and "babel-loader": "^8.0.4"

I solved the issue by changing the following dependencies in package.json. I got the solution from these link

"devDependencies": {
    "@babel/core": "^7.1.6",
    "@babel/preset-env": "^7.1.6",
    "@babel/preset-react": "^7.0.0",
    "babel-loader": "^8.0.4",
    "webpack": "^4.25.1",
    "webpack-cli": "^3.1.2"
}

and in .babelrc

{
    "presets": ["@babel/env", "@babel/react"]
}

or in package.json

"babel": {
    "presets": [
        "@babel/env",
        "@babel/react"
    ]
},

If you are using npm then use the following

npm install @babel/core --save-dev
npm install @babel/preset-env --save-dev
npm install @babel/preset-react --save-dev
npm install babel-loader --save-dev
npm install webpack --save-dev
npm install webpack-cli --save-dev

If you are using yarn, then use the following

yarn add @babel/core --dev
yarn add @babel/preset-env --dev
yarn add @babel/preset-react --dev
yarn add babel-loader --dev
yarn add webpack --dev
yarn add webpack-cli --dev