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

Hardhat框架中无scripts文件夹却有ignition文件夹的原因及功能疑问

Hardhat中Scripts文件夹与Ignition文件夹的差异解析

为什么会出现Ignition替代Scripts?

Hardhat在v2.18版本后推出了Ignition这个官方新一代部署管理工具,用来替代传统的Scripts部署方案,目的是解决Scripts手动编写部署逻辑带来的繁琐、易出错、难维护等问题。

核心差异对比

定位与编写方式

  • Scripts文件夹:属于手动脚本式部署,你需要用Node.js/TypeScript手写完整的部署逻辑——包括合约实例化、部署顺序控制、参数传递、地址保存等所有细节。灵活性高但重复代码多,新手容易踩坑(比如重复部署合约、依赖顺序搞错)。
  • Ignition文件夹:属于声明式部署,你只需要在modules子文件夹里定义合约的依赖关系、构造函数参数、部署条件等,Ignition会自动处理部署流程、状态追踪、安全校验这些底层工作,更规范也更省心。

状态与安全管理

  • Scripts:没有内置的部署状态追踪机制,重复运行脚本大概率会重复部署合约,需要自己写逻辑判断合约是否已部署;也没有内置的重入安全校验,部署过程中出问题得手动排查。
  • Ignition:内置部署状态快照(存在.ignition文件夹),会自动记录已部署的合约信息,避免重复部署;同时自带部署流程的安全校验,比如检查依赖合约是否已部署、参数是否合法等。

多网络适配

  • Scripts:需要手动判断当前运行的网络,编写分支逻辑来适配不同网络的参数(比如测试网和主网的部署参数不同),代码冗余度高。
  • Ignition:支持在配置中为不同网络单独指定部署参数,无需手动写判断逻辑,Ignition会自动匹配当前网络的配置。

功能是否相同?

二者的核心目标都是部署智能合约,但Ignition是Scripts的官方升级替代方案,在部署的安全性、可维护性、便捷性上都优于Scripts。新版本Hardhat初始化项目时,默认会生成Ignition文件夹而非Scripts文件夹。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:04:58