更新到 babel 7 beta 后,看起来 babel polyfill 在捆绑之前不会进行转译。我更新了所有作用域包,例如“@babel/polyfill”:“7.0.0-beta.36”。并将两个文件的导入从 import 'babel-polyfill' 更改为 import '@babel/polyfill'。如何将 babel/pollyfill 与 babel env 和 babel 一起使用 7. 使用 useBuiltIns: 'usage', with Targets 时我应该使用 babel/polyfill 吗?
.babelrc.js
const nodeEnv = process.env.NODE_ENV || 'development'
let presetEnvConfig, plugins
if (nodeEnv === 'test'){
presetEnvConfig = {targets: {node: 'current'}}
plugins = ['istanbul']
} else {
presetEnvConfig = {
targets: {
browsers: ['last 2 versions', 'ie >= 11']
},
modules: false
}
plugins = ['react-hot-loader/babel']
}
const config = {
presets: [
['@babel/preset-env', presetEnvConfig],
'@babel/react',
'@babel/stage-2'
],
plugins,
}
types.js
import keyMirror from '../../../utils/keyMirror'
export default keyMirror({
Unassign: null,
Reassign: null,
QuickAssignment: null,
}, 'TagAssignmentTypes')
index.js
<Assignment
assignee={assignee}
tagId={tagId && tagId.toString(16)}
assignmentType={assignmentTypes.Reassign}
onRequestClose={() => this.setState({isAssignmentInProgress: false})}
onChange={onChange}
/>
最佳答案
@babel/polyfill 是一个包装器包,仅包含稳定的 core-js 功能的导入(在 Babel 6 中还包含提案)和 regenerator-runtime/runtime,这是转译生成器和异步函数所需的。该包无法提供从 core-js@2 到 core-js@3 的平滑迁移路径:因此,决定弃用 @babel/polyfill,转而单独包含核心所需部分-js 和再生器运行时。
而不是
import "@babel/polyfill";
你应该使用这两行:
import "core-js/stable";
import "regenerator-runtime/runtime";
不要忘记直接安装这些依赖项!
npm i --save core-js regenerator-runtime
关于babeljs - Babel 7 和 babel-polyfill,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48008100/