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

Hardhat从.env导入API_URL和私钥时编译部署报错问题

问题排查与解决步骤

  • 首先修正变量名不匹配的问题
    错误日志明确提示ReferenceError: API_KEY is not defined,但你.env文件中定义的变量是API_URL,请检查hardhat.config.js第37行的代码,确认是否将变量名误写为API_KEY,和.env中的定义保持一致即可解决这个报错。
  • 检查dotenv依赖是否安装
    运行如下命令安装dotenv依赖:
    npm install dotenv --save-dev
    
  • 确认.env文件的位置与命名
    .env文件必须存放在项目根目录,和hardhat.config.js处于同一级文件夹,文件名必须为.env(开头的点不能省略,也不能加其他后缀),macOS系统默认隐藏带点前缀的文件,可以在项目根目录执行ls -a命令确认文件存在。
  • 修正.env文件语法
    建议去掉变量定义中等号两侧的空格,以及字符串两侧的引号,避免解析异常,修改后的.env内容如下:
    API_URL=https://ethropsten.alchemyapi.io/v2/UkW3oySI7WxvFwDwopQHPOHajHaWFZFv
    PRIVATE_KEY=8d33c2613cb63d0dc6305e57...
    
  • 强制指定.env文件读取路径
    可以修改dotenv的引入代码,强制指定读取当前目录下的.env文件,避免路径解析异常:
    require('dotenv').config({ path: __dirname + '/.env' });
    
    你也可以在引入dotenv后加入一行打印代码,验证变量是否读取成功:
    console.log('读取到的环境变量:', process.env.API_URL, process.env.PRIVATE_KEY);
    
    执行npx hardhat compile查看终端输出即可确认变量是否正常加载。
  • 私钥格式校验
    .env中的私钥请填写原生64位十六进制字符串,不要加0x前缀,你的配置中已经通过0x${PRIVATE_KEY}自动拼接了前缀,重复添加会导致账户格式错误。
  • 额外提示:Ropsten测试网已经正式废弃,即使环境变量配置正确也无法完成部署,建议将测试网切换为Sepolia或者Goerli,替换对应节点的API_URL即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:36:03