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

Node.js Webpack中.env环境变量读取失败求助

解决dotenv加载API密钥为undefined的问题

看起来你遇到的问题核心是环境变量加载失败,我帮你梳理几个关键排查点和修复方案:

1. 修复.env文件的格式错误

你的.env文件把两个变量写在同一行,这不符合dotenv的解析规则,每个环境变量必须单独占一行。修改后的.env应该是这样:

API_ID=XXXXXX
API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXX

2. 确保dotenv加载路径正确

虽然dotenv默认会从项目根目录加载.env,但如果你的server文件(src/server/index.js)的层级导致路径识别问题,可以显式指定.env的路径来避免歧义:
首先在index.js顶部引入path模块,再修改dotenv的配置:

const path = require('path');
const dotenv = require('dotenv');
// 从项目根目录加载.env文件,__dirname指向src/server,所以往上回退两级
dotenv.config({ path: path.resolve(__dirname, '../../.env') });

3. 验证变量是否成功加载

在src/server/index.js里添加测试代码,确认变量是否被正确读取:

console.log('Loaded API_ID:', process.env.API_ID);
console.log('Loaded API_KEY:', process.env.API_KEY);

执行npm start启动server,查看控制台输出,如果能看到你的密钥,说明加载成功;如果还是undefined,再检查.env文件的位置和格式。

4. 必要时重启服务

修改.env文件或dotenv配置后,必须重启你的node server和webpack-dev-server,否则新的环境变量不会被加载。

额外安全提醒

你的API密钥是敏感信息,确保.gitignore文件里确实包含.env条目,避免把密钥提交到版本仓库里。另外,绝对不要在前端代码(src/client目录下的文件)里直接使用这些密钥,所有API调用应该通过你的node server代理,防止密钥暴露给用户。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:58:16