要在 vscode 中运行和调试 solidity 智能合约,需先安装 solidity 插件(如 nomic Foundation 提供的),随后通过 hardhat 初始化项目并编译合约,接着配置 launch.JSon 文件以实现调试功能,最后可通过 hardhat console 手动部署和调用合约进行测试。
如果你用 vscode 写 Solidity,想运行和调试智能合约,其实不难,但需要搭好环境。下面直接说重点。
安装 Solidity 插件
首先你得在 VSCode 里装一个 Solidity 插件,最常用的是 Solidity by Nomic Foundation(以前是 Juan Blanco 维护的那个)。装好之后,VSCode 就能识别 .sol 文件,还能自动补全语法、检查错误。
安装方式很简单:
- 打开 VSCode 的扩展市场(快捷键 Ctrl+Shift+X)
- 搜索 “Solidity”
- 找到那个带“Nomic Foundation”说明的插件,点安装
装完后,打开一个 .sol 文件试试看有没有语法高亮和提示。
编译 Solidity 合约
VSCode 本身不能直接运行 Solidity 合约,你需要先编译它。你可以通过插件自带的编译功能,也可以用 Hardhat 或 Truffle 这类开发框架来操作。
推荐使用 Hardhat,因为它集成度高,适合本地调试。步骤大致如下:
- 初始化项目:npx hardhat
- 安装依赖:npm install –save-dev hardhat-toolbox
- 把你的 .sol 文件放到 contracts/ 目录下
- 在 scripts/ 下写个部署脚本,比如 run.js
- 编译合约:npx hardhat compile
这时候就能看到编译输出的 ABI 和字节码了。
调试智能合约的方法
如果你想像调试 JS 那样一步步执行 Solidity 代码,可以用 VSCode + Hardhat + JavaScript debugger。
具体做法:
- 在 launch.json 中添加一个调试配置
- 设置 runtime 为 node,program 指向你的部署脚本
- 在代码中加 debugger 语句,或者在 VSCode 中打断点
- 启动调试器,运行部署脚本
这样你就可以看到变量值、调用栈,甚至 step into 函数内部。
注意:这种方式是在本地模拟链上运行,不是真正的主网或测试网,适合开发阶段快速验证逻辑。
使用 Remix 风格的即时运行环境?
VSCode 本身不像 Remix 那样可以一键部署和调用函数,但你可以配合 Hardhat 的 hardhat console 来手动执行部署和调用。
举个例子:
const Contract = await ethers.getContractFactory("MyContract"); const contract = await Contract.deploy(); await contract.deployed(); // 然后调用函数 await contract.myFunction();
这样可以在本地节点上实时测试合约行为。
基本上就这些。整个流程看起来有点绕,但一旦搭好环境,调试和运行都挺顺手的。关键是要熟悉 Hardhat 的结构和 VSCode 的调试设置,别急着跳过配置步骤。