solidity-以太坊区块链Truffle-webpack开发入门 (十) 管理包和打包EthPM

Izellah ·
更新时间:2024-09-20
· 795 次阅读

管理包和打包  原文地址

EthPM是Ethereum一个新的包管理工具,遵循ERC190 spec的智能合约的规则,而且支持Ethereum的很多开发工具

使用EthPM安装包:

$ truffle install 

指定版号:

$ truffle install @

*像NPM一样的版本号规则

安装依赖包,你可能会跟别人共同开发项目,为了方便别人开发,可以把你的需要安装的包的清单放在 ethpm.json文件中,当有改动时,执行下列命令就可安装依赖包

$ truffle install

已经安装的包会被放在installed_contracts目录中,如果你的项目没有此目录,那么在安装包的时候会自动创建的,像NPM的已安装包目录:node_modules一样,不要轻易的修改,除非有把握。

安装包的使用方式跟NPM的一样:

pragma solidity ^0.4.2;
import "owned/owned.sol";
contract MyContract is owned {
  // ...
}

不用使用路径,truffle会自动到EthPM或NPM的包目录中查找

***truffle会优先到EthPM目录中查找 如果找不到再到NPM包目录中查找

打包发布:

如果要发布我们的合约,必须要有一个真实的模拟环境,应为testrpc环境中的address都是指定的

此处我们用ropsten,ropsten是一个在线的模拟环境,有使用限制的

安装必要的插件:

$ npm install truffle-hdwallet-provider --save

修改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/"),
      network_id: 3 // official id of the ropsten network
    }
  }
};

编辑环境:ethpm.json

{
  "package_name": "adder",
  "version": "0.0.3",
  "description": "Simple contract to add two numbers",
  "authors": [
    "Tim Coulter "
  ],
  "keywords": [
    "ethereum",
    "addition"
  ],
  "dependencies": {
    "owned": "^0.0.1"
  },
  "license": "MIT"
}

执行打包命令:

$ truffle publish

打印的信息:

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

为了确保打包发布成功,在发布之前需要清空网络

$ truffle networks --clean

作者:大都废



Truffle-webpack solidity 以太坊 webpack

需要 登录 后方可回复, 如果你还没有账号请 注册新账号