运行 webpack 升级到 babel 7 webpack 3

running webpack upgrade to babel7 webpack3

请帮助我理解为什么 bable/runtime/helpers 无法解析 interopRequireDefault。我刚刚升级了 babel,试图明确地将我的依赖项移动到 babel 7.0.0。据我了解,是否未检测到浏览器支持我的 babelrc 文件中提供的 "plugins" 中最新的 babel 使用。

错误是:模块构建失败:TypeError:无法读取 属性 'bindings' of null

我的 babel-loader 确实在调用文件并启动编译。我需要指定一些其他配置或遍历过程吗?

开发依赖

"devDependencies": {
"@babel/cli": "^7.0.0-beta.34",
"@babel/plugin-syntax-dynamic-import": "7.0.0-beta.34",
"@babel/plugin-syntax-export-default-from": "7.0.0-beta.34",
"@babel/plugin-syntax-export-namespace-from": "7.0.0-beta.34",
"@babel/plugin-transform-runtime": "^7.0.0-beta.34",
"@babel/plugin-transform-strict-mode": "7.0.0-beta.34",
"@babel/preset-react": "^7.0.0-beta.34",

babelrc

  "presets": [
    "latest",
    "react",
  ],
  "plugins": [
    "@babel/plugin-syntax-export-default-from",
    "@babel/plugin-syntax-export-namespace-from",
    "@babel/plugin-transform-runtime",
    "@babel/plugin-syntax-object-rest-spread",
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-transform-strict-mode",
  ],

错误

at Scope.moveBindingTo (/node_modules/babel-core/node_modules/babel-traverse/lib/scope/index.js:939:12)
at BlockScoping.updateScopeInfo (/node_modules/babel-preset-es2015/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17)
at BlockScoping.run (node_modules/babel-preset-es2015/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12)
at PluginPass.BlockStatementSwitchStatementProgram (node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24)

您正在使用 babel-preset-latest,它已被弃用,取而代之的是 babel-preset-env(对于 Babel 7,它是 npm 上的 @babel/preset-env)。 latest preset 已经被弃用了一段时间,Babel 7 完全放弃了它。您使用的预设适用于 Babel 6,与 Babel 7 不兼容。

您需要迁移到 @babel/preset-env

npm install --save-dev @babel/preset-env

env 预设可以配置为仅转换目标浏览器不支持的功能,但没有任何配置它的行为与 latest 预设完全一样,因此您可以替换它在你的 .babelrc 中。此外,您配置中的 react 预设应为 @babel/preset-react.

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