高级 - 1. 配置文件

优质
小牛编辑
135浏览
2023-12-01

http://truffleframework.com/docs/advanced/configuration

位置

你的配置文件是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
  }
};

默认配置文件已经配置好了,buildrpc。这些默认和非默认选项,详见后面。

选项

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

关于如何连接到以太坊客户端的一些细节。hostport是需要,另外还需要一些其它的。

  • host:指向以太坊客户端的地址。本机开发时,一般为localhost
  • port:以太坊客户端接收请求的端口,默认是8545
  • gas:部署时的Gas限制,默认是4712388
  • gasPrice:部署时的Gas价格。默认是100000000000(100 Shannon)
  • from:移植时使用的源地址。如果没有指定,默认是你的以太坊客户端第一个可用帐户。

示例:

rpc: {
  host: "localhost",
  port: 8545
}

MOCHA

MochaJS测试框架的配置选项,详细参考documentation。

示例:

mocha: {
  useColors: true
}

如果任何问题,欢迎留言批评指正。