1. 配置文件
位置
你的配置文件是truffle.js
。位于项目的根目录下。这个文件是Javascript文件,支持执行代码来创建配置。它必须导出一个对象,来代表项目配置,如下面的例子。
WINDOWS下的命名空间冲突
当使用Windows的命令行时,默认的配置文件名与truffle
冲突。这种情况下,我们推荐使用Windows的power Shell或Git BASH。你也可以将配置文件重命名为truffle-config.js
来避免冲突。
例子
module.exports = {
build: {
"index.html": "index.html",
"app.js": [
"javascripts/app.js"
],
"app.css": [
"stylesheets/app.css"
],
"images/": "images/"
},
rpc: {
host: "localhost",
port: 8545
}
};
默认配置文件已经配置好了,build
和rpc
。这些默认和非默认选项,详见后面。
选项
BUILD
这个是前端的构建配置。默认调用默认构建器,在上述构建章节,有所说明。但你也可以自定的构建流程,查看高级构建流程章节来了解更多。
例子:
build: {
"index.html": "index.html",
"app.js": [
"javascripts/app.js"
],
"app.css": [
"stylesheets/app.css"
],
"images/": "images/"
}
NETWORKS
指定在移植(Migration)时使用哪个网络。当在某个特定的网络上编译或运行移植时,合约会缓存起来方便后续使用。当你的合约抽象层检查到你连到某个网络上时,它会使用这个这个网络上原有的缓存合约来简化部署流程。网络通过以太坊的RPC调用中的net_version
来进行标识。
下述的networks
对象,通过一个网络名做为配置的键,值对应定义了其网络参数。networks
的对应选项不是必须的,但如果一旦指定,每个网络必须定义一个对应的network_id
。如果你想指定一个默认网络,你可以通过将netword_id
的值标记为default
来实现,当没有匹配到其它的网络时,就会使用默认网络。需要注意的是整个配置中,应该有且仅有一个default
的网络。一般来说,默认网络主要用于开发,配置,合约等数据没有长期保存的需要,网络ID也会因TestRPC的重启而频繁改变时。
网络名称用于用户接口调用时使用,在移植中的使用方式如下:
$ truffle migrate --network live
你还可以选择性的指定rpc的配置信息。下面是一个示例:
networks: {
"live": {
network_id: 1, // Ethereum public network
// optional config values
// host - defaults to "localhost"
// port - defaults to 8545
// gas
// gasPrice
// from - default address to use for any transaction Truffle makes during migrations
},
"morden": {
network_id: 2, // Official Ethereum test network
host: "178.25.19.88", // Random IP for example purposes (do not use)
port: 80
},
"staging": {
network_id: 1337 // custom private network
// use default rpc settings
},
"development": {
network_id: "default"
}
}
RPC
关于如何连接到以太坊客户端的一些细节。host
和port
是需要,另外还需要一些其它的。
host
:指向以太坊客户端的地址。本机开发时,一般为localhost
port
:以太坊客户端接收请求的端口,默认是8545
gas
:部署时的Gas限制,默认是4712388
gasPrice
:部署时的Gas价格。默认是100000000000
(100 Shannon)from
:移植时使用的源地址。如果没有指定,默认是你的以太坊客户端第一个可用帐户。
示例:
rpc: {
host: "localhost",
port: 8545
}
MOCHA
MochaJS测试框架的配置选项,详细参考documentation。
示例:
mocha: {
useColors: true
}
如果任何问题,欢迎留言批评指正。
处于某些特定的环境下,可以看到评论框,欢迎留言交流^_^。