首页 > 解决方案 > Babel 7 升级并从集合中创建一个数组

问题描述

自从升级到 Babel 7 后,我无法使用扩展运算符从Set.
例如:

const uniqueNums = [ ...new Set([ 0, 1, 1 ]) ];
// => Set { 0, 1 }

预期结果是:

// => [ 0, 1 ]

如果我这样做Array.from(new Set([ 0, 1, 1 ])),它会按预期工作。

它按预期工作,但我一定是在 Babel 升级的某个地方出错了。

我以前的.babelrc

{
  "presets": [
    [
      "env",
      {
        "modules": false,
        "targets": {
          "browsers": "> 1%",
          "uglify": true
        },
        "useBuiltIns": true
      }
    ],
    "react"
  ],
  "plugins": [
    "syntax-dynamic-import",
    "transform-object-rest-spread",
    [
      "transform-class-properties",
      {
        "spec": true
      }
    ]
  ]
}

升级到babel.config.js

module.exports = function(api) {
    return {
      presets: [
        [
          '@babel/preset-env',
          {
            modules: false,
            targets: {
              browsers: '> 5%, not dead'
            },
            forceAllTransforms: true,
            useBuiltIns: 'usage',
            corejs: 3
          }
        ],
        '@babel/preset-react'
      ],
      plugins: [
        '@babel/plugin-syntax-dynamic-import',
        '@babel/plugin-proposal-object-rest-spread',
        '@babel/plugin-proposal-class-properties',
        [
          '@babel/plugin-transform-spread',
          {
            loose: true
          }
        ]
      ]
    };
}

我缺少的预期配置是什么?

环境细节:
节点:10.16.2
babel:7.5.5
yarn:1.17.3

标签: javascriptbabeljs

解决方案


推荐阅读