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

使用Hardhat与Heroku部署智能合约:Hardhat未安装错误排查

解决Heroku部署后提示“hardhat not installed”的问题

1. 确认Hardhat的依赖安装范围

检查你的package.json,如果Hardhat被放在devDependencies中,Heroku默认部署时会跳过开发依赖的安装,导致找不到Hardhat。请将Hardhat移至dependencies节点:

{
  "dependencies": {
    "hardhat": "^2.19.0" // 替换为你实际使用的版本号
  }
}

2. 强制Heroku安装开发依赖(可选)

如果必须保留Hardhat在devDependencies中,可以通过设置环境变量让Heroku安装所有依赖:

heroku config:set NPM_CONFIG_PRODUCTION=false

若使用yarn,则设置:

heroku config:set YARN_PRODUCTION=false

3. 确保调用本地Hardhat实例

不要直接使用全局的npx hardhat命令,改用项目本地安装的Hardhat可执行文件,避免Heroku环境中找不到全局依赖:

const { exec } = require('child_process');
// 调用node_modules内的本地Hardhat
exec('./node_modules/.bin/hardhat deploy', (error, stdout, stderr) => {
  // 处理部署结果逻辑
});

或者在package.json中定义脚本命令,通过npm run调用(自动关联本地依赖):

{
  "scripts": {
    "deploy-contract": "hardhat deploy"
  }
}

4. 检查Heroku部署日志排查问题

通过日志确认Hardhat是否被正确安装:

heroku logs --tail

搜索installing dependencies相关内容,查看是否有Hardhat的安装记录。若未找到,说明依赖未被正确处理,回到前两步调整配置。

5. 清理Heroku缓存后重新部署

Heroku可能缓存了旧的依赖包,清理缓存后重新部署:

heroku plugins:install heroku-repo
heroku repo:purge_cache -a 你的应用名称
git commit --allow-empty -m "清理缓存重新部署"
git push heroku main

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:48:24