如何解析truffle.js配置文件

今天就跟大家聊聊有關(guān)如何解析truffle.js配置文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷推廣、網(wǎng)站重做改版、洪山網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為洪山等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

truffle.js是以太坊開(kāi)發(fā)框架truffle的配置文件,下面介紹truffle.js 配置文件的位置、windows下的命名沖突解決方案以及各種配置選項(xiàng)。

truffle配置文件位置

truffle項(xiàng)目的配置文件位于項(xiàng)目的根目錄下,名稱為truffle.js。這個(gè)文件是一個(gè)Javascript腳本,可以在其中執(zhí)行任意 必要的代碼來(lái)創(chuàng)建適合你的配置。truffle.js必須導(dǎo)出一個(gè)表征你的項(xiàng)目配置的對(duì)象,例如:

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*" // 可匹配任意網(wǎng)絡(luò)
    }
  }
};

在這個(gè)創(chuàng)建truffle項(xiàng)目時(shí)生成的默認(rèn)配置文件中,聲明了一個(gè)名為development的以太坊節(jié)點(diǎn),該節(jié)點(diǎn)在地址127.0.0.1:8545監(jiān)聽(tīng)。

WINDOWS下的命名沖突解析

在Windows命令行使用truffle時(shí),默認(rèn)的配置文件名與truffle沖突 —— 當(dāng)你在命令行輸入truffle時(shí),windows實(shí)際上會(huì)調(diào)用項(xiàng)目目錄下 的配置腳本truffle.js。

可以有幾種方法解決這一沖突:

  • 輸入truffle.cmd全稱,例如:

D:\ez-dapp> truffle.cmd compile
  • 修改PATHEXT環(huán)境變量,將.js后綴從可執(zhí)行后綴中刪除。

  • 將truffle.js更名為truffle-config.js。

  • 使用不會(huì)產(chǎn)生沖突的Windows的power Shell或Git BASH。

網(wǎng)絡(luò)節(jié)點(diǎn)選項(xiàng)

指定在部署合約、發(fā)送交易時(shí)使用哪個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。當(dāng)在某個(gè)特定的網(wǎng)絡(luò)節(jié)點(diǎn)上編譯或部署合約時(shí),合約會(huì)緩存起來(lái)方便后續(xù)使用。 當(dāng)truffle的合約抽象層檢查到你連到某個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)時(shí),它會(huì)使用這個(gè)這個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上原有的緩存合約來(lái)簡(jiǎn)化部署流程。

下述的networks對(duì)象,通過(guò)一個(gè)網(wǎng)絡(luò)名做為配置的鍵,值對(duì)應(yīng)定義了其網(wǎng)絡(luò)參數(shù)。networks的對(duì)應(yīng)選項(xiàng)不是必須的,但如果一旦指定, 每個(gè)網(wǎng)絡(luò)必須定義一個(gè)對(duì)應(yīng)的network_id。如果希望聲明一個(gè)默認(rèn)網(wǎng)絡(luò),可以通過(guò)將netword_id的值標(biāo)記為default來(lái)實(shí)現(xiàn), 當(dāng)沒(méi)有匹配到其它的網(wǎng)絡(luò)時(shí),就會(huì)使用默認(rèn)網(wǎng)絡(luò)。需要注意的是整個(gè)配置中,應(yīng)該有且僅有一個(gè)default的網(wǎng)絡(luò)。一般來(lái)說(shuō), 默認(rèn)網(wǎng)絡(luò)主要用于開(kāi)發(fā),配置,合約等數(shù)據(jù)沒(méi)有長(zhǎng)期保存的需要,網(wǎng)絡(luò)ID也會(huì)因TestRPC的重啟而頻繁改變時(shí)。

網(wǎng)絡(luò)節(jié)點(diǎn)名稱在通過(guò)用戶接口調(diào)用時(shí)使用。例如,在部署合約時(shí)使用--network選項(xiàng)指定要使用的網(wǎng)絡(luò)節(jié)點(diǎn):

$ truffle migrate --network live

live是truffle.js中定義的某個(gè)網(wǎng)絡(luò)節(jié)點(diǎn):

networks: {
  development: {
    host: "127.0.0.1",
    port: 8545,
    network_id: "*" // match any network
  },
  live: {
    host: "178.25.19.88", // Random IP for example purposes (do not use)
    port: 80,
    network_id: 1,        // Ethereum public network
    // optional config values:
    // gas
    // gasPrice
    // from - default address to use for any transaction Truffle makes during migrations
    // provider - web3 provider instance Truffle should use to talk to the Ethereum network.
    //          - function that returns a web3 provider instance (see below.)
    //          - if specified, host and port are ignored.
  }
}

對(duì)于每一個(gè)配置的網(wǎng)絡(luò)節(jié)點(diǎn),在未明確設(shè)置以下交易參數(shù)時(shí),使用其默認(rèn)值:

  • gas:部署合約的油耗上限,默認(rèn)值:4712388

  • gasPrice:部署合約時(shí)的油價(jià),默認(rèn)值:100000000000 wei,即100 shannon

  • from:執(zhí)行遷移腳本時(shí)使用的賬戶,默認(rèn)使用節(jié)點(diǎn)旳第一個(gè)賬戶

  • provider:默認(rèn)的provider使用host和port選項(xiàng)構(gòu)造:new Web3.providers.HttpProvider("http://host:port")

對(duì)于配置的每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),你可以設(shè)置provider或host/port,但不能同時(shí)使用。如果你需要一個(gè) HTTP provider,推薦使用host/port選項(xiàng),如果需要一個(gè)定制的provider,例如HDWalletProvider, 那么必須使用provider選項(xiàng)。

合約編譯輸出目錄選項(xiàng):CONTRACTS_BUILD_DIRECTORY

合約編譯的默認(rèn)輸出目錄是項(xiàng)目根目錄下的./build/contracts,不過(guò)這一點(diǎn)可以在配置文件中 使用contracts_build_directory配置項(xiàng)進(jìn)行修改。

例如,你可以將合約編譯結(jié)果存放在項(xiàng)目根目錄的./output/contracts目錄下:

module.exports = {
  contracts_build_directory: "./output",
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*",
    }
  }
};

編譯生成的合約構(gòu)件也可以不放在項(xiàng)目目錄下,例如:

module.exports = {
  contracts_build_directory: "../../../output",
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*",
    }
  }
};

當(dāng)然你也可以使用絕對(duì)路徑,不過(guò)我們不推薦這么做,因?yàn)槿绻谄渌麢C(jī)器上 構(gòu)建你的項(xiàng)目,可能會(huì)找不到你設(shè)定的絕對(duì)路徑。如果在windows下使用絕對(duì) 路徑,記得轉(zhuǎn)義反斜杠,例如: C:\\Users\\Username\\output。

測(cè)試框架選項(xiàng):MOCHA

使用mocha選項(xiàng)傳入MochaJS測(cè)試框架需要的配置選項(xiàng),例如:

mocha: {
  useColors: true
}

solidity編譯選項(xiàng):SOLC

使用solc選項(xiàng)傳入solity編譯器需要的選項(xiàng),例如:

solc: {
  optimizer: {
    enabled: true,
    runs: 200
  }
}

看完上述內(nèi)容,你們對(duì)如何解析truffle.js配置文件有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

標(biāo)題名稱:如何解析truffle.js配置文件
轉(zhuǎn)載來(lái)源:http://bm7419.com/article4/jcscie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、靜態(tài)網(wǎng)站、網(wǎng)站改版、全網(wǎng)營(yíng)銷推廣軟件開(kāi)發(fā)、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)