以太坊Solidity程式語言開發框架————15、構建流程
自定義構建流程
縱貫Truffle的發展歷史看來,預設構造器並不適合每一個人。它有一些明顯的缺點,且相比其它構建系統顯得不太成熟。由此,Truffle提供了三種方式,來讓你擴充套件預設的構建系統,但讓你能體驗到絕大部分的Truffle的特性。
執行外部命令
如果你希望在每次觸發構建時,執行一個外部命令。可以在專案的配置中包含一個選項。
module.exports = {
// This will run the `webpack` command on each build.
//
// The following environment variables will be set when running the command:
// WORKING_DIRECTORY: root location of the project
// BUILD_DESTINATION_DIRECTORY: expected destination of built assets (important for `truffle serve`)
// BUILD_CONTRACTS_DIRECTORY: root location of your build contract files (.sol.js)
// WEB3_PROVIDER_LOCATION: rpc configuration as a string, as a URL needed for web3's http provider.
//
build: "webpack"
}
需要注意的是,你需要提供對應的環境變數,來將這些外部的指令碼命令整合進Truffle,詳見配置中的備註。
提供一個自定義的函式
你可以提供了一個自定義的構建函式。框架給提供給你工程相關的引數,方便你與Truffle進行深度整合。
module.exports = {
build: function(options, callback) {
// Do something when a build is required. `options` contains these values:
//
// working_directory: root location of the project
// contracts: metadata about your contract files, code, etc.
// contracts_directory: root directory of .sol files
// rpc: rpc configuration defined in the configuration
// destination_directory: directory where truffle expects the built assets (important for `truffle serve`)
}
}
建立一個自定義的模組
你也可以通過建立一個模組或物件來實現構建介面(一個包含build
函式的物件,就像上一節中那樣)。這適用於需要整合Truffle,但又有自已的釋出流程情況。
下面是一個使用預設構建模組的一個例子。
var DefaultBuilder = require("truffle-default-builder");
module.exports = {
build: new DefaultBuilder(...) // specify the default builder configuration here.
}
初始化前端
因為你使用了你自己的構建流程,Truffle不再知道如何初始化你的前端。下面是一個需要做的事清單:
- 引入
Web3
庫 - 初始化一個web3的例項,設定一個provider指向到你的以太坊客戶端。檢查
web3
物件是否已經存在是十分重要的,因為如果有人通過錢包瀏覽器,比如Metamask或Mist,物件很有可能已存在,這時你應該使用這個物件,而不是初始化一個全新的。檢視例子瞭解更多。 require
或import
編譯好的sol.js
檔案從./build/contracts
目錄。對每個檔案需要呼叫MyContract.setProvider()
來設定provider
。這需要與web3
例項使用provider
是一致的。可以使用web3.currentProvider
來獲得當前的provider
。
var MyContract = require("./build/contracts/MyContract.sol.js");
MyContract.setProvider(web3.currentProvider);
使用WEBPACK
我們還在致力於與Webpack的緊密整合。可以通過這裡,來溝通你的想法。
如果任何問題,歡迎留言批評指正。
相關文章
- 以太坊Solidity程式語言開發框架————6、構建應用Solid框架
- 以太坊Solidity程式語言開發框架————5、移植Solid框架
- 以太坊Solidity程式語言開發框架————9、控制檯Solid框架
- 以太坊Solidity程式語言開發框架————1、Truffle簡介Solid框架
- 以太坊Solidity程式語言開發框架————10、外部指令碼Solid框架指令碼
- 以太坊Solidity程式語言開發框架————11、工作流Solid框架
- 以太坊Solidity程式語言開發框架————13、配置檔案Solid框架
- 以太坊Solidity程式語言開發框架————16、Truffle命令指南Solid框架
- 以太坊Solidity程式語言開發框架————12、聯絡開發者Solid框架
- 以太坊Solidity程式語言開發框架————3、建立一個工程Solid框架
- 以太坊Solidity程式語言開發框架————4、編譯合約Solid框架編譯
- 以太坊Solidity程式語言開發框架————7、合約互動Solid框架
- 以太坊Solidity程式語言開發框架————8、測試合約Solid框架
- 以太坊Solidity程式語言開發框架————2、網路與APP部署Solid框架APP
- 以太坊Solidity程式語言開發框架————14、網路與APP部署Solid框架APP
- olidity語言開發以太坊智慧合約中的繼承繼承
- Solidity語言學習筆記————15、結構體StructSolid筆記結構體Struct
- 以太坊開發實戰學習-高階Solidity理論 (五)Solid
- 以太坊智慧合約開發第五篇:字串拼接—Solidity字串Solid
- windows 以太坊開發框架Truffle環境搭建Windows框架
- 以太坊開發框架Truffle基礎使用介紹框架
- Solidity陷阱:以太坊的隨機數生成Solid隨機
- 以太坊Solidity型別介紹+實戰Solid型別
- 以太坊開發計劃
- 以太坊DApp開發指南APP
- 以太坊之工作流程
- 以太坊智慧合約開發第六篇:truffle開發框架框架
- 實戰:以太坊 DApp 開發與構建 - 李明 | Jeth 第二期APP
- EthBox以太坊開發套件,一鍵安裝部署以太坊開發環境套件開發環境
- 智慧合約從入門到精通:Solidity語言的開發規範和開發流程Solid
- 分投趣fintoch系統合約開發分析(Solidity程式語言)Solid
- 以太坊原始碼分析(15)node包建立多重協議以太坊節點原始碼協議
- 用solidity語言開發代幣智慧合約Solid
- C語言開發windows程式主要程式結構C語言Windows
- 元宇宙NFT鏈遊開發(農人計劃系統開發)Solidity程式語言元宇宙Solid
- 以太坊入門-Truffle框架搭建框架
- 3.5 以太坊開發環境搭建開發環境
- 如何使用Meteor開發以太坊DappAPP