1

更新到 babel 7 beta 后,看起来 babel polyfill 在 bundle 之前没有转译。我更新了所有范围包,例如“@babel/polyfill”:“7.0.0-beta.36”。并将两个文件的导入从 import 'babel-polyfill' 更改为 import '@babel/polyfill'。如何在 babel env 和 babel 中使用 babel/polyfill 7. 在使用 useBuiltIns: 'usage' 时,我应该使用 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,
}

类型.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}
    />
4

3 回答 3

2

@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

在此处输入图像描述

于 2019-07-01T21:52:02.060 回答
0
The following worked for me, add 
**.babelrc**
{
"presets": [
  ["@babel/env"]
]
}

**app.js**
import "core-js/stable";
import "regenerator-runtime/runtime";

*Install as pointed by gianmarco*
npm i --save core-js regenerator-runtime
于 2020-02-20T13:56:20.817 回答
0

改变

@babel/stage-2 到 @babel/preset-stage-2

于 2017-12-28T15:47:07.240 回答