You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止babel-preset-es2015编码模板字面量中的Unicode字符?

如何阻止babel-preset-es2015编码模板字面量中的Unicode字符?

当然可以实现!babel-preset-es2015里负责处理模板字面量的插件默认会把Unicode字符转义成\uXXXX格式,但通过调整配置就能让它保留原始字符。

具体配置方法

因为babel-preset-es2015是多个Babel插件的集合,我们需要覆盖其中transform-es2015-template-literals插件的默认行为:

  1. 修改Babel配置文件(比如.babelrc或babel.config.json):
    先排除预设中默认的模板字面量插件,再手动引入带参数的版本:

    {
      "presets": [
        ["es2015", {
          "exclude": ["transform-es2015-template-literals"]
        }]
      ],
      "plugins": [
        ["transform-es2015-template-literals", { "preserveRaw": true }]
      ]
    }
    
  2. 关键参数解释
    preserveRaw: true这个选项会告诉Babel保留模板字符串中的原始Unicode字符,不再自动转义成编码形式。

效果示例

假设你的原始代码是:

const message = `你好嗎`;

配置完成后,编译后的代码会直接保留你好嗎,而不是被转义为'\u4F60\u597D\u55CE'。

补充说明

如果你已经升级到Babel 7,babel-preset-es2015已经被@babel/preset-env取代,对应的插件是@babel/plugin-transform-template-literals,配置逻辑完全一致,只需要把插件名称换成新版本的即可。

内容的提问来源于stack exchange,提问作者3142 maple

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:22:56