使用dotenv在.ts文件中加载.env变量失败的解决求助
解决esrun运行TypeScript时dotenv路径错误问题
问题原因
esrun生成的临时文件存放在node_modules/.bin目录下,当使用import 'dotenv/config'时,它会从该子目录下查找dotenv模块,但你的dotenv实际安装在项目根目录的node_modules中,导致路径解析出错。
可行解决方案
方案1:手动初始化dotenv并指定.env路径
修改generate-keypair.ts代码,手动导入dotenv并明确指定.env文件的位置:
import dotenv from 'dotenv'; import { resolve } from 'path'; import { getKeypairFromEnvironment } from '@solana-developers/helpers'; // 基于当前文件所在目录,明确指向同级的.env文件 dotenv.config({ path: resolve(__dirname, '.env') }); console.log(process.env.SECRET_KEY); const keypair = getKeypairFromEnvironment('SECRET_KEY'); console.log(`✅ Finished! We've loaded our secret key securely, using an env file!`);
运行命令保持不变:esrun generate-keypair.ts
方案2:使用esrun内置的环境变量加载功能
esrun支持直接通过参数加载.env文件,无需在代码中导入dotenv:
- 移除代码中的
import 'dotenv/config'行,修改后代码如下:
import { getKeypairFromEnvironment } from '@solana-developers/helpers'; console.log(process.env.SECRET_KEY); const keypair = getKeypairFromEnvironment('SECRET_KEY'); console.log(`✅ Finished! We've loaded our secret key securely, using an env file!`);
- 执行以下命令运行:
esrun --env-file=.env generate-keypair.ts
方案3:确认dotenv安装状态
确保dotenv安装在项目根目录,执行以下命令重新安装:
npm install dotenv --save
内容的提问来源于stack exchange,提问作者Neilson Programmer
相关产品推荐
相关产品推荐

