{"content":{"title":"使用hardhat开发以太坊智能合约-搭建环境","body":"> 本系列课程：\r\n> \r\n> 第一节：[使用hardhat开发以太坊智能合约-搭建环境](https://learnblockchain.cn/article/4885)\r\n> \r\n> 第二节：[使用hardhat开发以太坊智能合约-测试合约](https://learnblockchain.cn/article/4930)\r\n> \r\n> 第三节：[使用hardhat开发以太坊智能合约-发布合约](https://learnblockchain.cn/article/4929)\r\n> \r\n> 第四节：[使用hardhat开发以太坊智能合约-验证合约](https://learnblockchain.cn/article/4931)\r\n\r\n在我们实际开发智能合约的时候，以往的开发一般都是使用remix在线编译器，它的好处是即开即用，本地不用安装相关的依赖环境，但是弊端也是显而易见的：难以测试、无法直接验证合约等等；\r\n\r\nhardhat的出现就可以帮助我们轻松的进行合约开发、测试、部署、验证等操作，下面我们一起开始hardhat的学习吧 \r\n\r\n> 目标：通过本章程的学习，可以掌握基本的hardhat使用 \r\n\r\n# 一、安装hardhat （[hardhat官网](https://hardhat.org/)）\r\n本教程需要您的主机安装vscode、以及node环境\r\n\r\n ## 1、安装hardhat\r\n首先我们创建一个文件夹，用于本次项目的工程目录，进入工程目录下，然后在命令提示符里输入：\r\n```js\r\nnpm install --save-dev hardhat\r\n```\r\n\r\n 耐心等等安装完成，当出现下图，代表第一步安装完成：\r\n\r\n\r\n![image.png](https://img.learnblockchain.cn/attachments/2022/10/qsqenbtU634c0eefbc963.png)\r\n\r\n\r\n## 2、创建工程：\r\n\r\n```js\r\nnpx hardhat\r\n```\r\n 出现下面提示：\r\n\r\n![image.png](https://img.learnblockchain.cn/attachments/2022/10/LyHA51Ue634c0f516e708.png)\r\n  \r\n\r\n 这里可以通过键盘上面的上、下键进行选择创建一个什么样的项目，是js、ts还是一个空模板，这里我以js项目为例，按回车键进行创建\r\n\r\n 创建项目的时候，会有几个创建信息提示，直接全部默认回车键即可\r\n\r\n![image.png](https://img.learnblockchain.cn/attachments/2022/10/tO3adM07634c0f617d8e6.png)\r\n\r\n\r\n我们这里已经创建好项目了，注意图片中一行字提示：you need to install……，我们需要把下面的这句命令复制，然后执行一下：\r\n\r\nnpm install --save-dev \"hardhat@^2.11.2\" \"@nomicfoundation/hardhat-toolbox@^2.0.0\"\r\n\r\n\r\n![image.png](https://img.learnblockchain.cn/attachments/2022/10/ROqFDNY5634c108583a34.png)\r\n\r\n现在我们把依赖的包已经安装完成了，让我们继续下一步 \r\n\r\n## 3、项目结构\r\n在vscode里打开工程目录\r\n\r\n![image.png](https://img.learnblockchain.cn/attachments/2022/10/5BItGSkd634c108f09fc4.png)\r\n\r\n\r\n我们可以看到一个清晰的项目结构，下面简单讲解一下各个目录的作用\r\n\r\n### 1）contracts\r\n\r\n        该目录用于存放合约文件，我们后面编写的合约都会存放在该目录下，hardhat的操作命令也会默认读取该目录下的合约文件，如果需要更改合约存放目录，请访问官方查看具体更改方法\r\n\r\n### 2）scripts\r\n\r\n        该目录用于存放脚本文件，我们编写部署脚本的时候会存放到该目录下，同contracts一样，可以进行修改，修改方法详见官网\r\n\r\n### 3）test\r\n\r\n        该目录用于存放测试脚本文件，我们编写的测试合约的方法会存放到该目录下，同contracts一样，可以进行修改，修改方法详见官网\r\n\r\n### 4）hardhat.config.js\r\n\r\n        该文件用于项目的配置使用，如区块链网络配置、合约编译版本配置等等，后续在讲解合约发布的时候会具体讲解里面的区块链网络配置\r\n\r\n> 通过本章学习，我们使用hardhat搭建起了一个基本的工程项目，在下一章节里，我会带领大家使用hardhat一起开发、部署合约，感兴趣的小伙伴关注一下吧~"},"author":{"user":"https://learnblockchain.cn/people/5344","address":null},"history":"QmQBfjBdd8fY1tdiy2anKFY6pesHbqijqXpB7pKe92heR3","timestamp":1666683373,"version":1}