如何配置 babel/preset-env 以包含 core-js URLSearchParams polyfill?
How can I configure babel/preset-env to include core-js URLSearchParams polyfill?
我正在我的应用程序中使用 URLSearchParams
。代码使用 babel
转译,使用 babel/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 吗?
因为我在这个问题上得到了赞成票,所以我可能也应该在这里添加我的答案。
我的问题是我在我的 webpack 配置中的入口点旁边添加了 @babel/polyfill
:
{
entry: {
"my.js": ["@babel/polyfill", "my.js"]
}
}
为了解决我的问题,我从入口点删除了 @babel/polyfill
,而是将以下内容添加到 my.js
的顶部:
import "core-js/stable";
import "regenerator-runtime/runtime";
我正在我的应用程序中使用 URLSearchParams
。代码使用 babel
转译,使用 babel/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 吗?
因为我在这个问题上得到了赞成票,所以我可能也应该在这里添加我的答案。
我的问题是我在我的 webpack 配置中的入口点旁边添加了 @babel/polyfill
:
{
entry: {
"my.js": ["@babel/polyfill", "my.js"]
}
}
为了解决我的问题,我从入口点删除了 @babel/polyfill
,而是将以下内容添加到 my.js
的顶部:
import "core-js/stable";
import "regenerator-runtime/runtime";