运行webpack升级到babel7 webpack3

时间:2017-12-12 12:11:38

标签: webpack babeljs webpack-plugin

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

错误是:模块构建失败:TypeError:无法读取null

的属性“绑定”

我的babel-loader肯定会调用文件并启动编译。我是否需要指定其他配置或遍历过程?

devDependencies

"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",
  ],

ERR

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)

1 个答案:

答案 0 :(得分:4)

您使用的是babel-preset-latest,已弃用babel-preset-env(对于Babel 7,它是@babel/preset-env npm)。 latest预设已被弃用了一段时间,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"
],