【问题标题】:Webpack/ Plugin/Preset files are not allowed to export objects, only functionsWebpack/Plugin/Preset 文件不允许导出对象,只能导出函数
【发布时间】:2020-03-10 20:02:36
【问题描述】:

安装 babel-polyfill 和 babel-preset-es2015 后出现错误:Plugin/Preset files are not allowed to export objects, only functions.

这是package.json中的devDependencies

 "devDependencies": {
    "@babel/cli": "^7.4.4",
    "@babel/core": "^7.4.5",
    "@babel/plugin-proposal-class-properties": "^7.4.4",
    "@babel/preset-env": "^7.4.5",
    "@babel/preset-react": "^7.0.0",
    "babel-core": "^6.26.3",
    "babel-loader": "^8.0.6",
    "babel-polyfill": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "browser-sync": "^2.26.5",
    "browser-sync-webpack-plugin": "^2.2.2",
    "redux-devtools": "^3.5.0",
    "webpack": "^4.32.2",
    "webpack-cli": "^3.3.2",
    "webpack-notifier": "^1.7.0"
  }

.babelrc

{
  "presets": [ "@babel/preset-env", "@babel/preset-react", "es2015", "stage-0" ],
  "plugins": [ "@babel/plugin-proposal-class-properties" ]
}

【问题讨论】:

    标签: webpack babeljs babel-polyfill


    【解决方案1】:

    这个错误与在你的项目中发现一些旧的 babel 东西有关。

    在您的预设中,“@babel/preset-env”和“@babel/preset-react”已更新到最新版本,但 es2015 和 stage-0 是较旧的依赖项,也需要更新并更换。

    所以在 es2015 的情况下,因为你正在运行 @babel/preset-env 我实际上并不认为你需要运行 es2015 或 stage-0,但只要你在你的预设中有它们,你就会得到错误。

    您还应该考虑提供完整的错误,例如在我的情况下,它类似于

    ERROR in ./demo2.js
    Module build failed (from ./node_modules/babel-loader/lib/index.js):
    Error: Plugin/Preset files are not allowed to export objects, only functions. In /Users/bryanrasmussen/projects/Tiling/demo/node_modules/babel-preset-es2015/lib/index.js
        at createDescriptor (/Users/bryanrasmussen/projects/Tiling/demo/node_modules/@babel/core/lib/config/config-descriptors.js:178:11)
        at /Users/bryanrasmussen/projects/Tiling/demo/node_modules/@babel/core/lib/config/config-descriptors.js:109:50
        at Array.map (<anonymous>)
        at createDescriptors (/Users/bryanrasmussen/projects/Tiling/demo/node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
        at createPresetDescriptors (/Users/bryanrasmussen/projects/Tiling/demo/node_modules/@babel/core/lib/config/config-descriptors.js:101:10)
        at /Users/bryanrasmussen/projects/Tiling/demo/node_modules/@babel/core/lib/config/config-descriptors.js:58:104
        at cachedFunction (/Users/bryanrasmussen/projects/Tiling/demo/node_modules/@babel/core/lib/config/caching.js:62:27)
        at cachedFunction.next (<anonymous>)
        at evaluateSync (/Users/bryanrasmussen/projects/Tiling/demo/node_modules/gensync/index.js:244:28)
        at sync (/Users/bryanrasmussen/projects/Tiling/demo/node_modules/gensync/index.js:84:14)
    

    因此,您可以看到那里的额外信息如何帮助试图查看您的问题的人意识到问题出在哪里。

    【讨论】:

      猜你喜欢
      • 2018-05-29
      • 2019-06-12
      • 2020-03-23
      • 2019-07-23
      • 2019-06-29
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 2019-06-20
      相关资源
      最近更新 更多