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

Vite 3配置全局变量时字符串末尾出现换行问题求助

解决Vite 3中__RELEASE_VERSION__末尾带换行符的问题

问题出在git rev-parse --short HEAD命令的输出上——git执行该命令后返回的哈希字符串末尾默认带有换行符,你目前仅在JSON.stringify之后做trim(),但JSON.stringify会把原换行符转义为\n,此时trim()只能处理整个JSON字符串首尾的空白,对内部的转义换行无效。

直接在获取commit哈希的环节就去除换行符即可,具体修改如下:

1. 修复commitHash的获取逻辑

const getReleaseVersion = (mode: string) => {
  if (mode === 'development') {
    return '';
  }

  const commitHash = childProcess
    .execSync('git rev-parse --short HEAD')
    .toString()
    .trim(); // 在此处添加trim(),去除git输出的换行符和首尾空白

  return `${pkg.version}-${commitHash}`;
};

2. 简化define配置(可选)

既然已经在源头处理了空白,JSON.stringify之后的trim()可以移除:

define: {
  __RELEASE_VERSION__: JSON.stringify(getReleaseVersion(mode)),
},

处理后,客户端输出的__RELEASE_VERSION__就不会带有末尾换行符,版本追踪的匹配问题也会解决。当前的define配置方式完全适用,无需更换变量获取方式。

内容的提问来源于stack exchange,提问作者Jeff Huijsmans

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:50:23