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

Electron JS项目中.env文件无法读取,求解决方法

Electron项目中.env环境变量无法访问的解决方法

Electron本身不会自动加载.env文件,需要通过以下配置让变量正常生效,分主进程和渲染场景说明:

1. 安装依赖

首先安装dotenv包,用于加载.env文件:

npm install dotenv --save
# 或用yarn
yarn add dotenv

2. 主进程配置

在Electron主进程的入口文件(比如main.js)最顶部添加以下代码,确保在其他代码执行前加载环境变量:

require('dotenv').config()

之后就能在主进程中直接通过process.env.SHOPIFY_STORE访问变量。

3. 渲染进程配置

渲染进程出于安全限制,默认不能直接访问主进程的process.env,需要分场景处理:

场景一:纯Electron渲染进程

  1. 在主进程创建窗口时,配置preload脚本路径:
const { BrowserWindow } = require('electron')
const path = require('path')

const mainWindow = new BrowserWindow({
  webPreferences: {
    preload: path.join(__dirname, 'preload.js'),
    contextIsolation: true, // 保持上下文隔离(默认开启)
    nodeIntegration: false // 关闭Node集成(默认关闭)
  }
})
  1. 创建preload.js文件,通过contextBridge将环境变量暴露给渲染进程:
const { contextBridge } = require('electron')

contextBridge.exposeInMainWorld('electronEnv', {
  shopifyStore: process.env.SHOPIFY_STORE,
  shopifyApiKey: process.env.SHOPIFY_API_KEY,
  shopifyApiSecret: process.env.SHOPIFY_API_SECRET
})
  1. 在渲染进程中通过全局变量访问:
console.log(window.electronEnv.shopifyStore)

场景二:结合Create React App(CRA)的情况

CRA默认支持.env文件,但要求变量以REACT_APP_为前缀,所以修改.env内容:

REACT_APP_SHOPIFY_STORE=example.com
REACT_APP_SHOPIFY_API_KEY=<key>
REACT_APP_SHOPIFY_API_SECRET=<secret key>

之后在React组件中直接通过process.env.REACT_APP_SHOPIFY_STORE访问即可,CRA会自动处理变量注入。若主进程也需要访问这些变量,仍需在主进程入口加载dotenv。

4. 注意事项

  • .env文件需放在项目根目录(与package.json同级)
  • 将.env添加到.gitignore,避免敏感信息泄露
  • 多环境场景下,可创建.env.development、.env.production等文件,dotenv会根据NODE_ENV自动加载对应文件,也可通过require('dotenv').config({ path: '.env.development' })指定加载路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:05:23