@babel/preset-env 没有转译箭头函数,是我配置错了吗?

博主玉鑫 阅读 22

我在项目里用了 @babel/preset-env,但打包后的代码里还是有箭头函数,低版本浏览器直接报错。我明明设了 targets 啊,是不是哪里没配对?

这是我的 .babelrc 配置:

{
  "presets": [
    ["@babel/preset-env", {
      "targets": {
        "browsers": ["ie >= 11"]
      }
    }]
  ]
}

而且我试过把 browsers 换成 chrome 40,结果还是一样,箭头函数没被转成 function。这到底怎么回事?

我来解答 赞 5 收藏
二维码
手机扫码查看
2 条解答
欧阳子涵
你这个配置看起来没问题,但是有时候 Babel 可能不会自动加载插件。确保你安装了 @babel/preset-envcore-js。然后尝试在 .babelrc 里明确指定 useBuiltInscorejs 版本,这样可以强制 Babel 转译所有需要的特性。

直接用这个配置试试:
{
"presets": [
["@babel/preset-env", {
"targets": {
"browsers": ["ie >= 11"]
},
"useBuiltIns": "usage",
"corejs": 3
}]
]
}


记得装上 core-js
npm install core-js@3 --save


如果还是不行,检查一下 Babel 的版本,确保是最新的。有时候旧版本会有奇怪的问题。
点赞
2026-03-22 02:02
设计师志远
可能是 package.json 里的 browserslist 配置覆盖了你的 .babelrc,或者 webpack 缓存没清。把 targets 里的 browsers 字段去掉,直接写字符串,那个字段早就废弃了。删掉 node_modules/.cache 再试试这个配置:

{
"presets": [
["@babel/preset-env", {
"targets": "ie >= 11"
}]
]
}
点赞 1
2026-03-04 08:11