Babel配置了preset-env为什么箭头函数没转译? Designer°乙涵 提问于 2026-02-16 16:33:25 阅读 44 工具 我在React项目里配置了@babel/preset-env,但代码里的箭头函数没转译成ES5,这是怎么回事? 项目里用了.babelrc配置: { "presets": ["@babel/preset-env"] } 已经安装了@babel/core和preset-env,目标浏览器是IE11。但编译后的代码里箭头函数依然存在,其他ES6语法倒是转了。是不是少了什么插件? 我来解答 赞 6 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 小钰欣 Lv1 箭头函数属于 transform 而不是 syntax,preset-env 需要知道目标浏览器才会转译。 在 .babelrc 里改成这样: { "presets": [ ["@babel/preset-env", { "targets": { "ie": "11" } }] ] } 或者在 package.json 里加 browserslist 配置: "browserslist": [ "ie 11" ] 不配置 targets 的话,preset-env 不知道要兼容 IE11,默认就不转箭头函数。 回复 点赞 2026-03-13 10:12 南宫素香 Lv1 你这个问题是因为 @babel/preset-env 默认只会转译那些目标浏览器不支持的语法,而箭头函数在某些情况下可能被认为“可被支持”,所以它没被转译。你需要明确指定目标浏览器是 IE11,并确保配置正确。 代码放这了,修改你的 .babelrc 配置: { "presets": [ ["@babel/preset-env", { "targets": { "ie": "11" } }] ] } 另外,如果你用的是 React,默认的 JSX 转译不会处理箭头函数,所以确保你装了 @babel/preset-react 并且也加到 presets 里。完整的配置应该是这样的: { "presets": [ ["@babel/preset-env", { "targets": { "ie": "11" } }], "@babel/preset-react" ] } 最后别忘了重启构建工具,有时候缓存会让你怀疑人生。如果还是不行,检查下是不是有其他插件或者工具链冲突了,比如 Webpack 的 loader 配置。我以前就被坑过好几次,真是烦。 回复 点赞 7 2026-02-16 17:02 加载更多 相关推荐 2 回答 38 浏览 为什么用了@babel/preset-env后箭头函数没被转译? 折腾了一下午还是没解决,项目里用了Babel和@babel/preset-env配置了targets,但箭头函数在打包后居然没转译成普通函数,Chrome没问题,用IE11直接报错。配置文件应该没问题... Mr-金利 工具 2026-02-15 11:48:25 2 回答 20 浏览 @babel/preset-env 没有转译箭头函数,是我配置错了吗? 我在项目里用了 @babel/preset-env,但打包后的代码里还是有箭头函数,低版本浏览器直接报错。我明明设了 targets 啊,是不是哪里没配对? 这是我的 .babelrc 配置: { &... 博主玉鑫 工具 2026-03-03 10:03:18 1 回答 33 浏览 @babel/preset-env 没有转译可选链操作符? 我用的是 Babel 7,配置了 @babel/preset-env,但代码里的可选链(?.)在打包后居然没被转译,低版本浏览器直接报错。我的 browserslist 配置明明包含了不支持这个语法的... 设计师娇娇 工具 2026-03-10 18:37:18 2 回答 166 浏览 为什么配置了Babel Presets后箭头函数没被转译? 在Vue项目里安装了@babel/preset-env,配置了.babelrc文件,但箭头函数还是没被转译成普通函数。试过更新Babel版本,检查过浏览器列表配置,打包后代码里箭头函数还是原样,控制台... 慕容艳苹 工具 2026-02-06 02:00:31 2 回答 66 浏览 Babel配置后箭头函数没转成普通函数,旧版浏览器报错怎么办? 我在项目里用了箭头函数写组件方法,按照教程安装了@babel/preset-env并配置了.babelrc: { "presets": ["@babel/preset-env"] } 但打包后代码里箭... 萌新.文雅 工具 2026-02-15 13:24:30 2 回答 36 浏览 配置了@babel/preset-react为什么还是报JSX语法错误? 刚在React项目里用Babel转译JSX,虽然装了@babel/preset-react,但编译时还是报Unexpected token错误。我的.babelrc配置是这样的: { "presets... 令狐瑞芳 工具 2026-02-07 13:11:37 2 回答 106 浏览 为什么配置了Babel的@babel/preset-react后JSX还是无法转换? 我在React项目里用Babel处理JSX,已经安装了@babel/preset-react并配置到.babelrc里了,但打包后浏览器还是报错"Uncaught SyntaxError: Unexp... FSD-倩云 工具 2026-02-05 06:23:27 2 回答 67 浏览 Babel配置中如何同时支持ES模块和CommonJS? 我在升级项目Babel配置时遇到了问题。之前用@babel/preset-env默认配置没问题,但今天想让代码同时兼容ES模块和CommonJS时,打包后出现Unexpected token 'exp... 司徒斐然 工具 2026-02-14 13:16:24 2 回答 53 浏览 Vue项目用了@babel/preset-typescript为什么还是报TypeScript语法错误? 在Vue3项目里配置了Babel和@babel/preset-typescript,但运行时还是提示“Unexpected token ‘;’ in JSON at position 12”这种错误.... UX炳錦 工具 2026-01-25 20:59:23 2 回答 22 浏览 postcss-preset-env 为什么没把 :focus-visible 转成兼容写法? 我用 postcss-preset-env 处理 CSS,但发现 :focus-visible 伪类在低版本浏览器里没生效。我明明开启了 stage: 3,按理说应该自动 polyfill 才对啊? ... A. 诗雅 工具 2026-02-25 08:09:18
在 .babelrc 里改成这样:
或者在 package.json 里加 browserslist 配置:
不配置 targets 的话,preset-env 不知道要兼容 IE11,默认就不转箭头函数。
@babel/preset-env默认只会转译那些目标浏览器不支持的语法,而箭头函数在某些情况下可能被认为“可被支持”,所以它没被转译。你需要明确指定目标浏览器是 IE11,并确保配置正确。代码放这了,修改你的 .babelrc 配置:
另外,如果你用的是 React,默认的 JSX 转译不会处理箭头函数,所以确保你装了
@babel/preset-react并且也加到 presets 里。完整的配置应该是这样的:最后别忘了重启构建工具,有时候缓存会让你怀疑人生。如果还是不行,检查下是不是有其他插件或者工具链冲突了,比如 Webpack 的 loader 配置。我以前就被坑过好几次,真是烦。