3. 开发环境搭建:Node.js与npm安装、Hardhat框架安装与初始化、VS Code配置Solidity插件、Git版本控制基础
好,咱们正式开始动手了。这一章我带你搭好开发环境。说实话,很多新手在这一步就被劝退了——装个东西报一堆错,心态直接崩掉。别担心,我会把踩过的坑都指出来。
3.1 Node.js 与 npm 安装
Node.js 是整个开发环境的地基。Hardhat、前端工具、各种库,全得靠它跑起来。
下载安装
去官网 nodejs.org 下载 LTS 版本。我个人习惯用 LTS,稳定,不会突然搞出兼容性问题。
安装过程很简单,一路 Next 就行。装完后打开终端(Windows 用 PowerShell 或 CMD,Mac/Linux 用 Terminal),验证一下:
node -v
npm -v
能看到版本号,说明装好了。比如我这边显示的是 v18.17.0 和 9.6.7。
npm 镜像配置
为什么要配?因为 npm 默认的源在国外,下载速度你懂的。我曾经等一个包下载等了五分钟,最后超时报错。后来学乖了,换成淘宝镜像:
npm config set registry https://registry.npmmirror.com
配完之后,下载速度飞起。嗯,这里要注意,有些企业内网可能用不了镜像,那就得用 VPN 了。
3.2 Hardhat 框架安装与初始化
Hardhat 是目前最流行的 Solidity 开发框架。我刚开始做 NFT 项目时用的 Truffle,后来发现 Hardhat 的调试体验好太多了,果断切换。
全局安装 Hardhat
打开终端,执行:
npm install -g hardhat
加 -g 是全局安装,这样你可以在任何目录下使用 hardhat 命令。
初始化项目
创建一个新文件夹,比如 nft-demo,然后进去:
mkdir nft-demo
cd nft-demo
npx hardhat init
这时候会出现一个交互式菜单,选 Create a JavaScript project。为什么选 JS 而不是 TS?因为新手用 JS 更简单,少配置一堆类型定义。等你熟练了再换 TS。
初始化完成后,目录结构是这样的:
nft-demo/
├── contracts/ # 存放 Solidity 合约
├── scripts/ # 部署脚本
├── test/ # 测试文件
├── hardhat.config.js # 配置文件
└── package.json # 依赖管理
我个人习惯把 hardhat.config.js 打开看一眼,确认网络配置和 Solidity 版本。默认是 0.8.19,够用。
3.3 VS Code 配置 Solidity 插件
写 Solidity 代码,没有语法高亮和自动补全,那效率太低了。VS Code 是首选编辑器,免费又好用。
安装插件
打开 VS Code,左侧扩展面板搜索:
- Solidity + Hardhat:这个插件集成了语法高亮、代码补全、编译错误提示。我一直在用,很稳定。
- Prettier:代码格式化工具。团队协作时,统一代码风格很重要。
装完之后,打开一个 .sol 文件,你会看到代码有了颜色,写起来舒服多了。
配置代码片段
为了偷懒,我给自己配了几个常用代码片段。比如输入 nft 自动补全一个 ERC721 合约框架。方法是在 VS Code 里按 Ctrl+Shift+P,搜 Configure User Snippets,选 solidity.json,然后粘贴:
{
"ERC721 Template": {
"prefix": "nft",
"body": [
"// SPDX-License-Identifier: MIT",
"pragma solidity ^0.8.19;",
"",
"import \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";",
"",
"contract ${1:MyNFT} is ERC721 {",
" constructor() ERC721(\"${2:MyNFT}\", \"${3:MNFT}\") {}",
"}"
],
"description": "ERC721 合约模板"
}
}
这样每次新建合约,输入 nft 再按 Tab,模板就出来了。省时间。
3.4 Git 版本控制基础
Git 是程序员的后悔药。你改错了代码?回滚。项目崩了?回滚。我见过太多人写代码不 commit,最后改了一堆东西找不回来,只能重写。
初始化仓库
在项目根目录执行:
git init
这会创建一个隐藏的 .git 文件夹,用来记录版本历史。
配置用户信息
第一次用 Git 需要告诉它你是谁:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
这个信息会出现在每次提交记录里。团队协作时,别人就知道代码是谁改的。
添加 .gitignore 文件
有些文件不需要被 Git 管理,比如 node_modules、编译产物。在项目根目录创建 .gitignore,写入:
node_modules/
artifacts/
cache/
.env
我曾经犯过一个错,把 node_modules 提交到了仓库,结果项目体积直接几百兆,克隆下来慢得要死。后来就长记性了。
第一次提交
把当前所有文件添加到暂存区,然后提交:
git add .
git commit -m "初始化项目:Hardhat + NFT 开发环境"
提交信息要写清楚,方便以后回溯。别写 update 这种没意义的描述。
查看状态
随时可以用 git status 看看哪些文件被改了。我几乎每写几行代码就跑一下这个命令,心里有底。
好了,环境搭完了。下一章咱们开始写真正的 NFT 合约。你想想看,从零到能部署合约,其实也就几步的事。别急,慢慢来。