Truffle – 编译合约

位置

所有的合约源文件都位于项目的contracts/目录中。由于合约是用Solidity语言编写的,所以合约源文件的扩展名都是.sol。相关的Solidity库文件的扩展名也是.sol

如果是原始的Truffle项目模板(通过truffle init创建),里面将包含一个Migrations.sol源文件,用于部署合约。如果使用 Truffle Box,里面将包含多个文件。

命令

要编译Truffle项目,切换到项目根目录,然后在终端中执行以下命令:

truffle compile

在第一次执行时,将编译所有合约。在随后的执行中,Truffle将只编译更改过的合约。如果你想全部编译,可以使用--all选项执行上面的命令。

编译构件(artifact)

编译的构件将放在项目根目录下的build/contract/目录中, 如果此目录不存在,则创建该目录。

这些构件是Truffle内部工作不可或缺的,它们在应用程序的成功部署中扮演着重要的角色。你不应该编辑这些文件,在编译和部署合约时,它们将被覆盖。

依赖项

可以使用Solidity语言的import命令声明合约依赖项。Truffle将按照正确的顺序编译,并确保所有依赖项都被编译。依赖关系可以通过2种方式指定:

通过文件名导入依赖项

要从其他文件导入合约,可以将以下代码添加到Solidity源文件中:

import "./AnotherContract.sol";

这将导入另一个源文件AnotherContract.sol中的所有合约,导入文件的路径是基于当前源文件的相对路径。

注意,Solidity语言还允许其他导入语法。有关更多信息,请参阅Solidity文档。

从外部包导入合约

Truffle支持通过EthPM和NPM安装依赖项。要从依赖项导入合约,可使用以下语法

import "somepackage/SomeContract.sol";

这里,somepackage表示通过EthPM或NPM安装的包。SomeContract.sol表示该包提供的Solidity源文件。

注意,在搜索NPM安装的包之前,Truffle将首先搜索EthPM安装的包,因此在命名冲突的罕见情况下,将使用EthPM安装的包。

有关如何使用Truffle包管理特性的更多信息,请参阅Truffle EthPM和NPM文档。



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载