在哪里可以找到要添加到 babel.config.js 的 polyfill 名称
Where to find polyfill names to add to babel.config.js
babel docs link to github.com/zloirock/core-js获取可以使用的polyfills。我们目前正在使用 es6.array.iterator
、es6.promise
、es7.promise.finally
、es6.object.assign
、es6.symbol
、es6.map
。这些大多与 github 页面上的内容一致,但未直接列出。
不过我现在想添加 url and url-search-params 但无法计算出在 babel 配置中使用什么魔法字符串。某处是否有所有有效的 babel polyfill 的列表?
这是我们的 babel.config.js 目前的样子:
module.exports = {
presets: [
[
'@vue/app',
{
polyfills: [
'es6.array.iterator',
'es6.promise',
'es7.promise.finally',
'es6.object.assign',
'es6.symbol',
'es6.map',
],
},
],
],
sourceType: 'unambiguous',
};
core-js
的文档乍一看并没有提供列表本身,但在阅读之后我发现了这个 URL and SearchParams。根据此文档,我认为您应该在 polyfills 数组中包含 web.url
、web.url.to-json
、web.url-search-params
以启用此功能。但是,我认为有一种方法可以包含 core-js
然后使用 browserlist
之类的东西来仅针对您需要支持的浏览器。希望这对你有帮助。干杯,西格弗里德。
编辑:
为了完成,我已经包括了我正在谈论的选项,因为你可以看到这是一个 React
项目,但我认为通过一些调整你可以在 Vue.js
项目中完成这项工作。
编辑#2:
我认为这就是我们正在寻找的列表:) Core-JS Polyfills
babelrc
{
"presets": [
[
"@babel/preset-env",
{
"targets": ["last 2 versions", "not dead", "not < 2%"],
"useBuiltIns": "entry"
}
],
"@babel/preset-react"
],
"plugins": [
"react-hot-loader/babel",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-syntax-dynamic-import"
],
"env": {
"test": {
"plugins": ["dynamic-import-node"]
}
}
}
app.js
import React from 'react'
import '@babel/polyfill'
import ReactDOM from 'react-dom'
import App from './App'
import DefaultErrorBoundary from './DefaultErrorBoundary'
import './main.scss'
if (process.env.NODE_ENV === 'development') {
const axe = require('react-axe')
axe(React, ReactDOM, 1000)
}
ReactDOM.render(
<React.StrictMode>
<DefaultErrorBoundary>
<App />
</DefaultErrorBoundary>
</React.StrictMode>,
document.getElementById('app')
)
babel docs link to github.com/zloirock/core-js获取可以使用的polyfills。我们目前正在使用 es6.array.iterator
、es6.promise
、es7.promise.finally
、es6.object.assign
、es6.symbol
、es6.map
。这些大多与 github 页面上的内容一致,但未直接列出。
不过我现在想添加 url and url-search-params 但无法计算出在 babel 配置中使用什么魔法字符串。某处是否有所有有效的 babel polyfill 的列表?
这是我们的 babel.config.js 目前的样子:
module.exports = {
presets: [
[
'@vue/app',
{
polyfills: [
'es6.array.iterator',
'es6.promise',
'es7.promise.finally',
'es6.object.assign',
'es6.symbol',
'es6.map',
],
},
],
],
sourceType: 'unambiguous',
};
core-js
的文档乍一看并没有提供列表本身,但在阅读之后我发现了这个 URL and SearchParams。根据此文档,我认为您应该在 polyfills 数组中包含 web.url
、web.url.to-json
、web.url-search-params
以启用此功能。但是,我认为有一种方法可以包含 core-js
然后使用 browserlist
之类的东西来仅针对您需要支持的浏览器。希望这对你有帮助。干杯,西格弗里德。
编辑:
为了完成,我已经包括了我正在谈论的选项,因为你可以看到这是一个 React
项目,但我认为通过一些调整你可以在 Vue.js
项目中完成这项工作。
编辑#2: 我认为这就是我们正在寻找的列表:) Core-JS Polyfills
babelrc
{
"presets": [
[
"@babel/preset-env",
{
"targets": ["last 2 versions", "not dead", "not < 2%"],
"useBuiltIns": "entry"
}
],
"@babel/preset-react"
],
"plugins": [
"react-hot-loader/babel",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-syntax-dynamic-import"
],
"env": {
"test": {
"plugins": ["dynamic-import-node"]
}
}
}
app.js
import React from 'react'
import '@babel/polyfill'
import ReactDOM from 'react-dom'
import App from './App'
import DefaultErrorBoundary from './DefaultErrorBoundary'
import './main.scss'
if (process.env.NODE_ENV === 'development') {
const axe = require('react-axe')
axe(React, ReactDOM, 1000)
}
ReactDOM.render(
<React.StrictMode>
<DefaultErrorBoundary>
<App />
</DefaultErrorBoundary>
</React.StrictMode>,
document.getElementById('app')
)