Truffle 命令手册¶
本节将介绍Truffle应用程序中可用的每个命令。
使用方法¶
所有命令均采用以下形式:
truffle <command> [options]
传递没有参数相当于 truffle help
,将显示所有命令然后退出。
Passing no arguments is equivalent to truffle help
, which will display a list of all commands and then exit.
命令列表¶
编译合约 compile¶
编译合约源文件。
truffle compile [--list <filter>] [--all] [--network <name>] [--quiet]
除非另有说明,否则将仅编译自上次编译以来已更改的合约。
选项:
--list <filter>
: 从solc-bin列出所有最近的稳定版本。如果指定了filter,则它将仅显示匹配的版本。 filter参数可以为:prereleases, releases, latestRelease or docker。--all
: 编译所有合约,而不是仅编译自上次编译后更改的合约。--network <name>
: 指定要使用的网络,保存特定于该网络的工件(artifacts)。网络名称必须存在于配置文件中。--quiet
: 取消所有编译输出。
config¶
显示是启用还是禁用分析,并提示是否切换设置。
truffle config [--enable-analytics|--disable-analytics]
选项:
--enable-analytics|--disable-analytics
: 启用或禁用分析。
启动控制台 console¶
运行具有合约抽象和命令的控制台。
truffle console [--network <name>] [--verbose-rpc]
通过命令行与合约进行交互的接口。此外,许多 Truffle 命令在控制台中使用(不需要 truffle
前缀)
需要外部以太坊客户端,例如Ganache 或 geth ,则使用 truffle develop
创建开发和测试环境的控制台。
有关详细信息,请参阅使用控制台 。
选项:
--network <name>
: :指定要使用的网络。网络名称必须存在于配置中。--verbose-rpc
: 记录Truffle和以太坊客户端之间的通信log。
创建 create¶
用于创建新的合约,迁移和测试。
truffle create <artifact_type> <ArtifactName>
选项:
<artifact_type>
: (必须项) 创建一个新合约,迁移和测试, artifact_type 可以是:contract, migration 或 test. 创建的文件通常像这样:contracts/ArtifactName.sol
,migrations/####_artifact_name.js
ortests/artifact_name.js
.<ArtifactName>
: (必须项) 新工件(合约,迁移和测试)的名称。
Camel 的命名将转换为下划线分隔的文件名,以用于迁移和测试。将自动生成迁移的编号前缀。
调试 debug¶
交互式调试区块链上的任何事务。
truffle debug <transaction_hash>
将在特定事务上启动交互式调试会话。允许您逐步执行每个操作并重播(replay)。有关详细信息,请参阅调试合约 。
注解
警告:调试命令依然是实验性的。
选项:
<transaction_hash>
: 用于调试的事务ID。 (必须项)
控制台 develop¶
使用框架集成的 develop 链打开控制台
truffle develop
通过命令行与框架集成的 develop 链上合约进行交互的接口。此外,许多 Truffle 命令在控制台中使用(不需要 truffle
前缀)
如果想要现有的区块链上合约进行交互,请使用 truffle console
。
有关详细信息,请参阅使用控制台 。
exec¶
在Truffle环境中执行JS模块。
truffle exec <script.js> [--network <name>] [--compile]
会引入 web3
,根据指定的网络(如果有)设置默认提供者(provider),并在执行脚本时将引入我们的合约作为全局对象。提供的脚本必须导出Truffle可以运行的函数。
有关详细信息,请参阅编写外部脚本 。
选项:
<script.js>
: 要执行的JavaScript文件。如果当前目录中不存在脚本,则可以包含路径信息。 (必须)--network <name>
: 指定要使用的网络。网络名称必须存在于配置中。--compile
: 在执行脚本之前编译合约。
初始化工程 init¶
初始化新的(空的)以太坊项目
truffle init [--force]
在当前工作目录中创建一个新的空Truffle项目。
注解
警告: 较旧版本的 Truffle 使用 truffle init bare 来创建一个空项目。此用法已被弃用。 基于某一个实例来创建应该使用如 truffle unbox MetaCoin 。
选项:
--force
: 无论当前工作目录的状态如何,都要初始化项目。请注意,这可能会覆盖名称冲突的现有文件。
安装 install¶
从以太坊包注册表(Ethereum Package Registry)安装包。
truffle install <package_name>[@<version>]
选项:
<package_name>
: 以太坊包注册表中列出的包的名称。 (必须)@<version>
: 指定时,会安装特定版本的软件包,否则会安装最新版本。
有关详细信息,请参阅使用EthPM进行包管理 。
migrate¶
运行迁移文件以部署合约。
truffle migrate [--reset] [--f <number>] [--to <number>] [--network <name>] [--compile-all] [--verbose-rpc] [--dry-run] [--interactive]
除非指定,否则将从上次完成的迁移开始。有关详细信息,请参阅(迁移)合约部署 。
选项:
--reset
: 从头开始运行所有迁移,而不是从上次完成的迁移中运行。--f <number>
: 从特定的迁移中运行合约。该数字指的是迁移文件的前缀。--to <number>
: 运行合约到特定的迁移。该数字指的是迁移文件的前缀。--network <name>
: 指定要使用的网络,网络名称必须存在于配置中。--compile-all
: 编译所有合约,而不是智能地选择需要编译的合约。--verbose-rpc
: 记录Truffle和以太坊客户端之间的通信日志。--dry-run
: 分叉(fork - 复制)指定的网络并仅执行测试迁移。--interactive
: 在 dry run 之后,提示确认用户是否要继续。
网络 networks¶
显示每个网络上已部署合约的地址。
truffle networks [--clean]
在发布包之前使用此命令,以查看是否存在不希望发布的任何无关的网络的工件(artifacts)。如果未指定选项,只输出当前的工件状态。
选项:
--clean
: 删除所有与命名网络(named network , 是指在配置文件中指明的网络)无关的网络工件。
操作码 opcode¶
打印给定合约的已编译操作码。
truffle opcode <contract_name>
选项:
<contract_name>
: 要打印操作码的合约的名称。必须是合约名称,而不是文件名。(必须)
发布 publish¶
将包发布到以太坊包注册表(Ethereum Package Registry)。
truffle publish
所有参数都从项目的配置文件中提取。没有参数,有关详细信息,请参阅使用EthPM进行包管理 。
运行 run¶
注解
仍处于”准系统状态”的新功能,可向 Truffle 反馈改进意见!
运行第三方插件命令
truffle run <command>
选项:
<command>
: 由已安装的插件定义的命令的名称。(必须)
安装插件作为NPM包依赖项存在,参考Truffle 配置 了解插件 有关更多信息,请参阅第三方插件命令.
测试 test¶
运行JavaScript和Solidity测试用例。
truffle test [<test_file>] [--compile-all] [--network <name>] [--verbose-rpc] [--show-events]
运行 test/
目录中的全部测试用例,或指定用例文件。有关详细信息,请参阅 测试合约 。
选项:
<test_file>
: 要运行的测试文件的名称。如果当前目录中不存在该文件,则可以包含路径信息。--compile-all
: 编译所有合约,而不是智能地选择需要编译的合约。--network <name>
: 指定要使用的网络,网络名称必须存在于配置中。--verbose-rpc
: 记录Truffle和以太坊客户端之间的通信日志。--show-events
: 记录所有合约的事件。
解包 unbox¶
下载Truffle Box , 它是一个预制(pre-built)的 Truffle 工程。
truffle unbox <box_name>
下载 Truffle Box 到当前工作目录。请参阅可用boxes列表.
还可以设计和创建自己的boxes! 有关详细信息,请参阅Truffle boxes 。
选项:
<box_name>
: Truffle Box 的名称(必须 required)--force
: 强制在当前目录中的解包项目,无论其状态如何。请注意,这可能会覆盖目录中存在的文件。
监视变化 watch¶
监视文件系统以进行更改并自动重新构建(rebuild) 项目。
truffle watch
此命令将启动对合约,应用程序和配置文件更改的监视。当有更改时,它将根据需要重新构建应用程序。
注解
警告:不推荐使用此命令。请使用外部工具来监视文件系统更改并重新运行测试。