您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何解析truffle.js配置文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
truffle.js是以太坊開發(fā)框架truffle的配置文件,下面介紹truffle.js 配置文件的位置、windows下的命名沖突解決方案以及各種配置選項。
truffle項目的配置文件位于項目的根目錄下,名稱為truffle.js。這個文件是一個Javascript腳本,可以在其中執(zhí)行任意 必要的代碼來創(chuàng)建適合你的配置。truffle.js必須導出一個表征你的項目配置的對象,例如:
module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*" // 可匹配任意網(wǎng)絡 } } };
在這個創(chuàng)建truffle項目時生成的默認配置文件中,聲明了一個名為development
的以太坊節(jié)點,該節(jié)點在地址127.0.0.1:8545
監(jiān)聽。
在Windows命令行使用truffle時,默認的配置文件名與truffle沖突 —— 當你在命令行輸入truffle時,windows實際上會調(diào)用項目目錄下 的配置腳本truffle.js。
可以有幾種方法解決這一沖突:
輸入truffle.cmd全稱,例如:
D:\ez-dapp> truffle.cmd compile
修改PATHEXT環(huán)境變量,將.js
后綴從可執(zhí)行后綴中刪除。
將truffle.js更名為truffle-config.js
。
使用不會產(chǎn)生沖突的Windows的power Shell或Git BASH。
指定在部署合約、發(fā)送交易時使用哪個網(wǎng)絡節(jié)點。當在某個特定的網(wǎng)絡節(jié)點上編譯或部署合約時,合約會緩存起來方便后續(xù)使用。 當truffle的合約抽象層檢查到你連到某個網(wǎng)絡節(jié)點時,它會使用這個這個網(wǎng)絡節(jié)點上原有的緩存合約來簡化部署流程。
下述的networks對象,通過一個網(wǎng)絡名做為配置的鍵,值對應定義了其網(wǎng)絡參數(shù)。networks的對應選項不是必須的,但如果一旦指定, 每個網(wǎng)絡必須定義一個對應的network_id。如果希望聲明一個默認網(wǎng)絡,可以通過將netword_id的值標記為default來實現(xiàn), 當沒有匹配到其它的網(wǎng)絡時,就會使用默認網(wǎng)絡。需要注意的是整個配置中,應該有且僅有一個default的網(wǎng)絡。一般來說, 默認網(wǎng)絡主要用于開發(fā),配置,合約等數(shù)據(jù)沒有長期保存的需要,網(wǎng)絡ID也會因TestRPC的重啟而頻繁改變時。
網(wǎng)絡節(jié)點名稱在通過用戶接口調(diào)用時使用。例如,在部署合約時使用--network
選項指定要使用的網(wǎng)絡節(jié)點:
$ truffle migrate --network live
live
是truffle.js中定義的某個網(wǎng)絡節(jié)點:
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. } }
對于每一個配置的網(wǎng)絡節(jié)點,在未明確設置以下交易參數(shù)時,使用其默認值:
gas:部署合約的油耗上限,默認值:4712388
gasPrice:部署合約時的油價,默認值:100000000000 wei,即100 shannon
from:執(zhí)行遷移腳本時使用的賬戶,默認使用節(jié)點旳第一個賬戶
provider:默認的provider使用host和port選項構造:new Web3.providers.HttpProvider("http://host:port")
對于配置的每個網(wǎng)絡節(jié)點,你可以設置provider或host/port,但不能同時使用。如果你需要一個 HTTP provider,推薦使用host/port選項,如果需要一個定制的provider,例如HDWalletProvider, 那么必須使用provider選項。
合約編譯的默認輸出目錄是項目根目錄下的./build/contracts,不過這一點可以在配置文件中 使用contracts_build_directory配置項進行修改。
例如,你可以將合約編譯結果存放在項目根目錄的./output/contracts目錄下:
module.exports = { contracts_build_directory: "./output", networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*", } } };
編譯生成的合約構件也可以不放在項目目錄下,例如:
module.exports = { contracts_build_directory: "../../../output", networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*", } } };
當然你也可以使用絕對路徑,不過我們不推薦這么做,因為如果在其他機器上 構建你的項目,可能會找不到你設定的絕對路徑。如果在windows下使用絕對 路徑,記得轉(zhuǎn)義反斜杠,例如: C:\\Users\\Username\\output
。
使用mocha選項傳入MochaJS測試框架需要的配置選項,例如:
mocha: { useColors: true }
使用solc選項傳入solity編譯器需要的選項,例如:
solc: { optimizer: { enabled: true, runs: 200 } }
看完上述內(nèi)容,你們對如何解析truffle.js配置文件有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。