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

electron-builder打包React TS Electron应用时报错找不到.env文件如何解决

解决方案
  • 第一步:配置electron-builder的额外资源规则
    在项目的package.json中新增build.extraResources配置,指定将.env文件复制到打包产物的资源目录:
{
  "build": {
    // 其余原有配置保持不变
    "extraResources": [
      {
        "from": "./.env",
        "to": "./"
      }
    ]
  }
}

如果是使用单独的electron-builder.yml配置文件,添加如下配置:

extraResources:
  - from: "./.env"
    to: "./"
  • 第二步:调整代码中.env的读取路径
    本地开发和打包后的运行路径不同,需要动态适配路径再加载环境变量,主进程代码示例:
import { app } from 'electron';
import path from 'path';
import fs from 'fs';
import dotenv from 'dotenv';

// 动态计算.env文件路径
const getEnvPath = () => {
  if (app.isPackaged) {
    // 打包后路径:资源目录下
    return path.join(process.resourcesPath, '.env');
  }
  // 开发环境路径:根据你的项目根目录相对位置调整,确保能命中根目录的.env
  return path.join(__dirname, '../../.env');
};

const envPath = getEnvPath();
if (fs.existsSync(envPath)) {
  dotenv.config({ path: envPath });
} else {
  throw new Error(`环境变量文件未找到: ${envPath}`);
}
  • 补充注意事项

如果你的.env文件包含密钥、接口令牌等敏感信息,不建议直接打包到公开分发的应用包中,可考虑在打包阶段通过CI/CD环境变量注入,或者运行时从服务端拉取敏感配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:27:01