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

标签 babeljs babel-preset-env core-js

我正在使用 URLSearchParams在我的应用程序中。代码被转译为 babel , 使用 babel/preset-envcore-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以某种方式包含 URLSearchParams来自 core-js 的 polyfill?

最佳答案

由于我在这个问题上获得了赞成票,因此我也应该在这里添加我的答案。

我的问题是我添加了 @babel/polyfill在我的 webpack 配置中的入口点旁边:

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

为了解决我的问题,我删除了 @babel/polyfill从入口点开始,而是将以下内容添加到 my.js 的顶部:
import "core-js/stable";
import "regenerator-runtime/runtime";

关于babeljs - 如何配置 babel/preset-env 以包含 core-js URLSearchParams polyfill?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56991531/

相关文章:

javascript - 条件渲染在 React 映射循环中不起作用

javascript - Jest 无法使用 Typescript 导入(SyntaxError : Cannot use import statement outside a module)

javascript - 配置 `@babel/runtime-corejs3` 排除 es.date.now

javascript - 为什么看起来整个 core-js 库都与我的 webpack 设置捆绑在一起?

javascript - 当它是另一个项目的依赖项时,什么是捆绑我的汇总项目

javascript - 如何读取 Button 组件的 propTypes 的值

javascript - 从转译中排除箭头函数

cross-browser - 带有 babel-preset-env 的 Babel 似乎忽略了 browserslist 配置

webpack - 获取 @babel/present-env 的默认实现以与 IE11 一起使用

build - 使用 @babel/preset-env 和 useBuiltIns :'usage' 时是否需要导入 core-js/stable 和 regenerator-runtime/runtime ?