代码之家  ›  专栏  ›  技术社区  ›  rap-2-h

升级到Babel 7:无法读取null的属性“bindings”

  •  39
  • rap-2-h  · 技术社区  · 6 年前

    Babel 7 (从6开始)通过运行以下命令:

    npm remove babel-cli
    npm install --save-dev @babel/cli @babel/core @babel/preset-env
    

    这是我的 .babelrc 文件:

    { "presets": ["env"] }
    

    然后我跑了:

    babel js/src --out-dir js/dist
    

    结果是:

    TypeError: Cannot read property 'bindings' of null
        at Scope.moveBindingTo (/xyz/node_modules/@babel/traverse/lib/scope/index.js:867:13)
        at BlockScoping.updateScopeInfo (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17)
        at BlockScoping.run (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12)
        at PluginPass.BlockStatementSwitchStatementProgram (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24)
        at newFn (/xyz/node_modules/@babel/traverse/lib/visitors.js:193:21)
        at NodePath._call (/xyz/node_modules/@babel/traverse/lib/path/context.js:53:20)
        at NodePath.call (/xyz/node_modules/@babel/traverse/lib/path/context.js:40:17)
        at NodePath.visit (/xyz/node_modules/@babel/traverse/lib/path/context.js:88:12)
        at TraversalContext.visitQueue (/xyz/node_modules/@babel/traverse/lib/context.js:118:16)
        at TraversalContext.visitSingle (/xyz/node_modules/@babel/traverse/lib/context.js:90:19)
    

    我做错了什么?

    1 回复  |  直到 6 年前
        1
  •  343
  •   Gangadhar Jannu    5 年前

    在你的 .babelrc 文件,更改

    { "presets": ["env"] } 
    

    { "presets": ["@babel/preset-env"] }
    

    (如果尚未安装,请安装该软件包)。

    在你的 您仍在引用包 babel-preset-env @babel/preset-env 取而代之的是7.x。

    https://github.com/babel/babel/issues/6186#issuecomment-366556833

    注: 你也应该在 webpack.config.js 如果它也在那里。

    use: {
      loader: 'babel-loader',
      options: {
        // Here you should change 'env' to '@babel/preset-env'
        presets: ['@babel/preset-env'],
      },
    },