如何配置babel / preset-env以包括core-js URLSearchParams polyfill?

时间:2019-07-11 14:27:44

标签: babel babel-preset-env core-js

我在我的应用中使用URLSearchParams。该代码使用babelbabel/preset-env进行了core-js@3的转译,以包含我定位的浏览器所需的polyfill。

这是我的babelrc:

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "modules": false,
        "corejs": "3",
        "useBuiltIns": "entry",
        "forceAllTransforms": true
      }
    ]
  ]
}

这是我的.browserslistrc

IE 11
Edge >= 14
last 2 Chrome versions
last 2 Firefox versions

问题在于,即使我在.browserslistrc中指定了IE11,URLSearchParams的polyfill仍未包含在最终捆绑包中。到目前为止,我已经通过手动导入core-js/web/url-search-params.js解决了这个问题,但是我宁愿由babel/preset-env自动完成。

我可以通过某种方式配置babel/preset-env来包含来自core-js的URLSearchParams polyfill吗?

1 个答案:

答案 0 :(得分:1)

由于我对这个问题持反对意见,所以我可能也应该在这里添加答案。

对我来说,问题是我在Webpack配置中的入口点旁边添加了@babel/polyfill

{
  entry: {
    "my.js": ["@babel/polyfill", "my.js"]
  }
}

要解决我的问题,我从入口点删除了@babel/polyfill,而是在my.js的顶部添加了以下内容:

import "core-js/stable";
import "regenerator-runtime/runtime";