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"]
将我所有过时的 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"]