[英]Babel-Loader Error Plugin/Preset files are not allowed to export objects, only functions
After updating all my outdated npm
packages to @latest
, my electron app fails to start, giving the error将所有过时的
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.
./src/index.js 中的错误 [0] 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):[0] 错误:插件/预设文件不允许导出对象,只能导出函数. In /Users/nyxynyx/foobar/node_modules/babel-preset-stage-0/lib/index.js
在 /Users/nyxynyx/foobar/node_modules/babel-preset-stage-0/lib/index.js
Any idea what went wrong?知道出了什么问题吗? Thank you everyone!
谢谢大家!
.babelrc .babelrc
{
"presets": ["env", "stage-0", "react"],
"plugins": [
"babel-plugin-styled-components",
"react-hot-loader/babel",
["transform-class-properties", { "loose": true }]
]
}
package.json (dependencies & devDependencies) package.json(依赖项和 devDependencies)
"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"
},
Using node v12.6.0 on Mac OS X Mojave 10.14.5在 Mac OS X Mojave 10.14.5 上使用 node v12.6.0
I am moving my answer from comment due to lack of space there :)由于那里缺乏空间,我正在从评论中删除我的答案:)
Try using new packages for babel-core, babel-register and presets, replacing the old ones since they are depricated (babel-core, babel-presets-env, etc):尝试为 babel-core、babel-register 和 presets 使用新的包,替换旧的包,因为它们已被弃用(babel-core、babel-presets-env 等):
@babel/core - https://www.npmjs.com/package/@babel/core , @babel/core - https://www.npmjs.com/package/@babel/core ,
@babel/presets-env - https://babeljs.io/docs/en/babel-preset-env , @babel/presets-env - https://babeljs.io/docs/en/babel-preset-env ,
@babel/presets-react - https://babeljs.io/docs/en/babel-preset-react , @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/presets-stage-0 https://babeljs.io/docs/en/babel-preset-stage-0 ,
@babel/polyfill - https://babeljs.io/docs/en/babel-polyfill and @babel/polyfill - https://babeljs.io/docs/en/babel-polyfill和
@babel/register - https://babeljs.io/docs/en/babel-register . @babel/register - https://babeljs.io/docs/en/babel-register 。
Then try deleting package.lock, and running again npm i .然后尝试删除 package.lock,并再次运行 npm i 。 If that is not helping you can also try deleting node_modules folder, and running npm i again
如果这没有帮助,您也可以尝试删除 node_modules 文件夹,然后再次运行 npm i
That is due to outdated babel packages being used.这是由于使用了过时的 babel 包。 The babel project, just like most other active Javascript projects, have moved on to using scope packages.
babel 项目,就像大多数其他活跃的 Javascript 项目一样,已经转向使用范围包。 Hence, the package names starts with
@babel
因此,包名以
@babel
babel-preset-env
/ babel-preset-react
packages are deprecated. babel-preset-env
/ babel-preset-react
包已被弃用。 use @babel/preset-env
and @babel/preset-react
packages.使用
@babel/preset-env
和@babel/preset-react
包。
And do the following change in .babelrc
:并在
.babelrc
进行以下更改:
"presets": ["@babel/env", "@babel/react"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.