Babel 配合 core-js 为啥没按预期 polyfill Promise?

淑涵 阅读 23

我用 Babel + @babel/preset-env 搭配 core-js@3 做兼容处理,目标浏览器包括 IE11。明明代码里用了 Promise,但打包后没看到自动注入的 polyfill,IE11 直接报错“Promise 未定义”。我配置了 useBuiltIns: 'usage',也安装了 core-js,咋还是不行?

顺便贴一下我的 CSS,虽然应该没关系,但怕有啥隐藏影响:

.loading {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background: #f5f5f5;
}
我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
一瑞红
一瑞红 Lv1
问题在于你只配了 useBuiltIns,但忘了在入口文件顶部引入 core-js。

在入口文件(一般是 main.js 或 index.js)最前面加上:

import 'core-js/stable';

然后 babel.config.js 要这样配:

module.exports = {
presets: [
['@babel/preset-env', {
useBuiltIns: 'usage',
corejs: 3
}]
]
};

还有,确保你装的是 core-js@3,别用错了版本。
点赞
2026-03-18 13:01