Foundry 管理依赖项

本章介绍如何管理 Foundry 项目中依赖项。

推特@Hita_DAO    DiscordHitaDAO

git submodules 是 git 版本控制系统中的一个功能,它允许将一个 git 仓库作为另一个 git 仓库的子目录。

forge 使用 git submodules 来管理依赖项,一个 Foundry 项目可以与任何包含智能合约的 git 代码库一起使用。

我们新创建的项目,都默认包含了一个依赖项 forge-std,它就是以 git submodules 的方式进行管理的。

初学者可以暂时跳过本章内容,需要时再来仔细阅读。

添加依赖

Foundry 项目中添加一个依赖项,可以运行 forge install:

$ forge install transmissions11/solmate
Installing solmate in ".../deps/lib/solmate" (url: Some("https://github.com/transmissions11/solmate"), tag: None)
   Installed solmate

上述命令将会拉取 github 上的 solmate 库,并暂存在 .gitmodules 文件中。

我们查看当前的 lib 文件夹:

$ tree lib -L 1
lib
├── forge-std
├── solmate
└── weird-erc20

3 directories, 0 files

可以看到 forge 在 lib 目录中安装了 solmate。默认情况下,forge install 安装最新的 master 分支版本。

如果要安装一个特定的标签或提交,可以这样做:

$ forge install transmission11/solmate@v7

更新依赖

我们可以使用 forge update,将特定依赖项更新为最新版本。

例如,我们想从之前安装的 solmate 主版本中提取最新的提交,我们可以运行:

$ forge update lib/solmate

或者通过运行 forge update 一次对所有依赖项执行更新。

删除依赖

我们可以使用 forge remove ... 删除依赖项,其中依赖项可以是完整的路径,也可以只是名称。

例如,要删除 solmate,下面两个命令是等价的:

$ forge remove solmate
# ... 等同于 ...
$ forge remove lib/solmate