Babel-Loader Error Plugin/Preset 文件不允许导出对象,只能导出函数

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

将我所有过时的 npm 包更新到 @latest 后,我的电子应用程序无法启动,给出错误

ERROR in ./src/index.js [0] Module build failed (from ./node_modules/babel-loader/lib/index.js): [0] Error: Plugin/Preset files are not allowed to export objects, only functions. In /Users/nyxynyx/foobar/node_modules/babel-preset-stage-0/lib/index.js

知道哪里出了问题吗?谢谢大家!

.babelrc

{
  "presets": ["env", "stage-0", "react"],
  "plugins": [
    "babel-plugin-styled-components",
    "react-hot-loader/babel",
    ["transform-class-properties", { "loose": true }]
  ]
}

package.json(依赖项和开发依赖项)

"dependencies": {
    "@fortawesome/fontawesome-svg-core": "^1.2.21",
    "@fortawesome/free-solid-svg-icons": "^5.10.1",
    "@fortawesome/react-fontawesome": "^0.1.4",
    "babel-core": "^6.26.3",
    "babel-eslint": "^10.0.2",
    "babel-loader": "^8.0.6",
    "babel-plugin-styled-components": "^1.10.6",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "babel-register": "^6.26.0",
    "bootstrap": "^4.3.1",
    "css-loader": "^3.2.0",
    "electron-log": "^3.0.7",
    "electron-updater": "^4.1.2",
    "file-loader": "^4.2.0",
    "firebase": "^6.3.4",
    "fix-path": "^2.1.0",
    "json-loader": "^0.5.7",
    "lodash": "^4.17.15",
    "menubar": "^6.0.7",
    "prop-types": "^15.7.2",
    "react": "^16.8.6",
    "react-redux": "^7.1.0",
    "react-redux-firebase": "^2.3.0",
    "reactstrap": "^8.0.1",
    "redux": "^4.0.4",
    "redux-thunk": "^2.3.0",
    "style-loader": "^1.0.0",
    "styled-components": "^4.3.2",
    "typeface-open-sans": "0.0.75",
    "url-loader": "^2.1.0"
  },
"devDependencies": {
    "concurrently": "^4.1.1",
    "devtron": "^1.4.0",
    "electron": "^6.0.1",
    "electron-builder": "^21.2.0",
    "electron-debug": "^3.0.1",
    "electron-devtools-installer": "^2.2.4",
    "eslint": "^6.1.0",
    "eslint-config-airbnb": "^17.1.1",
    "eslint-import-resolver-webpack": "^0.11.1",
    "eslint-plugin-import": "^2.18.2",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-react": "^7.14.3",
    "express": "^4.17.1",
    "react-dom": "^16.8.6",
    "react-hot-loader": "^4.12.10",
    "react-router": "^5.0.1",
    "react-router-dom": "^5.0.1",
    "stylelint": "^10.1.0",
    "stylelint-config-standard": "^18.3.0",
    "uglifyjs-webpack-plugin": "^2.2.0",
    "webpack": "^4.39.1",
    "webpack-dev-middleware": "^3.7.0",
    "webpack-hot-middleware": "^2.25.0",
    "webpack-merge": "^4.2.1"
  },

在 Mac OS X Mojave 10.14.5

上使用节点 v12.6.0

由于缺少 space,我正在从评论中移走我的答案:)

尝试为 babel-core、babel-register 和 presets 使用新的包,替换旧的包,因为它们已经过时(babel-core、babel-presets-env 等):

@babel/core - https://www.npmjs.com/package/@babel/core,

@babel/presets-env - https://babeljs.io/docs/en/babel-preset-env,

@babel/presets-react - https://babeljs.io/docs/en/babel-preset-react,

@babel/presets-stage-0 https://babeljs.io/docs/en/babel-preset-stage-0,

@babel/polyfill - https://babeljs.io/docs/en/babel-polyfill

@babel/register - https://babeljs.io/docs/en/babel-register

然后尝试再次删除 package.lock 和 运行 npm i 。如果这没有帮助,您还可以尝试删除 node_modules 文件夹,然后再次 运行 npm i

这是由于使用了过时的 babel 包。 babel 项目,就像大多数其他活跃的 Javascript 项目一样,已经开始使用范围包。因此,包名称以 @babel

开头

babel-preset-env / babel-preset-react 软件包已弃用。 使用 @babel/preset-env@babel/preset-react 包。

并在 .babelrc 中进行以下更改:

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