第二章:开发环境准备
好,咱们正式开始动手了。在写第一行智能合约代码之前,得先把家伙事儿备齐。我见过太多新手一上来就急着写代码,结果环境配到一半卡住了,心态直接崩掉。别急,咱们一步步来。
2.1 安装 Node.js
Node.js 是整个开发环境的地基。说白了,没有它,后面那些工具全都跑不起来。我个人习惯用 LTS 版本,稳定,不容易踩坑。
下载地址: https://nodejs.org/(选择 LTS 版本)
安装完成后,打开终端(Windows 用 PowerShell 或 CMD,Mac 用 Terminal),输入以下命令验证:
node -v
npm -v
如果能看到版本号,比如 v18.17.0 和 9.6.7,那就说明装好了。我曾经遇到一个学员,装完 Node.js 后死活输不出版本号,最后发现是环境变量没配好。嗯,这里要注意——Windows 用户如果遇到这种情况,去系统环境变量里检查一下 PATH 有没有包含 Node.js 的安装路径。
nvm(Node Version Manager)来管理 Node.js 版本。这样以后切换版本会非常方便。安装命令:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
2.2 安装 npm / yarn
装完 Node.js,npm 就自动带上了。npm 是 Node.js 的包管理器,用来安装各种依赖库。不过我个人更偏爱 yarn,因为它速度快,而且锁文件机制更可靠。
安装 yarn:
npm install -g yarn
验证安装:
yarn --version
你可能会问:「到底用 npm 还是 yarn?」我的建议是——团队项目用 yarn,个人小项目随意。我在一个 DeFi 项目里吃过 npm 的亏,依赖版本不一致导致部署到链上出了 bug,排查了整整两天。从那以后,但凡涉及区块链的项目,我都用 yarn。
| 特性 | npm | yarn |
|---|---|---|
| 安装速度 | 较慢 | 较快(并行下载) |
| 锁文件 | package-lock.json | yarn.lock(更可靠) |
| 离线缓存 | 不支持 | 支持 |
| 安全性 | 一般 | 更好(校验完整性) |
2.3 安装 Truffle 或 Hardhat 框架
这是重头戏。Truffle 和 Hardhat 都是以太坊开发框架,帮你编译、测试、部署智能合约。我个人更推荐 Hardhat,因为它更现代,调试体验更好。但 Truffle 也有它的优势,生态更成熟。
安装 Hardhat
mkdir my-dapp
cd my-dapp
npm init -y
npm install --save-dev hardhat
初始化项目:
npx hardhat init
你会看到几个选项:
- Create a JavaScript project
- Create a TypeScript project
- Create an empty hardhat.config.js
我建议选 JavaScript 项目,对新手友好。选完后,Hardhat 会自动生成项目结构,包括 contracts/、test/、scripts/ 等目录。
安装 Truffle(备选)
npm install -g truffle
truffle init
两种框架选一个就行。我个人习惯用 Hardhat,但如果你之后要跟 Ganache 配合做本地测试,Truffle 会更顺手。你想想看,工具这东西,顺手最重要。
2.4 安装 MetaMask 钱包
MetaMask 是你和区块链交互的「浏览器」。没有它,你的 DApp 就没办法跟用户的钱包连接。
安装步骤:
- 打开 Chrome 浏览器,访问 Chrome 网上应用店
- 搜索「MetaMask」
- 点击「添加到 Chrome」
- 安装完成后,浏览器右上角会出现一个小狐狸图标
第一次打开 MetaMask,会引导你创建钱包。这里要注意:
- 助记词一定要手写抄下来,存到安全的地方。 别截图,别存云盘。我见过太多人因为助记词丢了,几万美金的资产再也拿不回来。
- 设置一个强密码,别用 123456 这种。
创建完成后,你会看到主网、Goerli 测试网等选项。开发阶段我们一般用测试网,别往主网里充真金白银。
2.5 验证环境是否就绪
装完这些工具后,咱们来做个快速验证。打开终端,进入你的项目目录,运行:
npx hardhat compile
如果看到类似 Compiled 1 Solidity file successfully 的提示,说明环境配好了。这时候你打开 MetaMask,切换到 Goerli 测试网,去水龙头领点测试 ETH,就可以开始写合约了。
嗯,到这里,开发环境就准备完毕了。下一章咱们会真正开始写智能合约,到时候你会觉得——原来 DApp 开发也没那么难嘛。