Truffle 发布自己的包

Ropsten 测试网络

以太坊社区的包注册中心目前存在于Ropsten测试网络上。要把包发布到包注册中心,需要配置好Ropsten网络。

配置Ropsten网络,我们需要设置好账户地址,连接到以太坊节点(使用Infura)。关于如何连接到公链,详细示例可参考以太坊(Ethereum) – 连接公链

首先,通过项目目录中的NPM安装 truff-hdwallet-provider:

$ npm install truffle-hdwallet-provider--save

然后编辑配置,添加ropsten网络,使用账户地址的12个单词助记符:

文件: truffle.js

var

HDWalletProvider = require(

"truffle-hdwallet-provider"

);
// 12-word mnemonic

var

mnemonic =

"opinion destroy betray ..."

;
module.exports = {
  networks: {
    development: {
      host:

"127.0.0.1"

,
      port: 8545,
      network_id:

"*"

 // Match any network id
    },
    ropsten: {
      provider: () =>

new

HDWalletProvider(mnemonic,

"https://ropsten.infura.io/v3/YOUR-PROJECT-ID"

),
        network_id: 3 // official id of the ropsten network
    }
  }
};

包的配置

如前面章节所述,EthPM的配置选项位于一个名为 EthPM.JSON的JSON文件中。

文件: ethpm.json

{

"package_name"

:

"adder"

,

"version"

:

"0.0.3"

,

"description"

:

"Simple contract to add two numbers"

,

"authors"

: [

"Tim Coulter <tim.coulter@consensys.net>"

  ],

"keywords"

: [

"ethereum"

,

"addition"

  ],

"dependencies"

: {

"owned"

:

"^0.0.1"

  },

"license"

:

"MIT"

}

命令

配置完成后,发布就很简单了:

$ truffle publish

将看到类似下面的输出,可以确认包已经成功发布。

$ truffle publish
Gathering contracts...
Finding publishable artifacts...
Uploading sources and publishing to registry...
+ adder@0.0.3

发布前清理

当使用默认的开发网络(配置为匹配任何Ethereum客户机(如Ganache或Truffle develop))时,项目中可能会有一些不希望发布的网络构件。在发布包之前,可以运行以下命令来删除任何无关的网络构件:

$ truffle networks--clean

有关更多信息,请参见命令参考。

下一章:Truffle NPM包管理

  Truffle中集成了npm,如果项目中存在node_modules目录,它会感知到,你可以使用NPM来管理包。  目录布局 默认情况下,使用Truffle创建的项目有一个特定的目 ...