以太坊Solidity程式語言開發框架————3、建立一個工程
自定義構建流程
縱貫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程式語言開發框架————5、移植Solid框架
- 以太坊Solidity程式語言開發框架————9、控制檯Solid框架
- 以太坊Solidity程式語言開發框架————1、Truffle簡介Solid框架
- 以太坊Solidity程式語言開發框架————10、外部指令碼Solid框架指令碼
- 以太坊Solidity程式語言開發框架————11、工作流Solid框架
- 以太坊Solidity程式語言開發框架————12、聯絡開發者Solid框架
- 以太坊Solidity程式語言開發框架————13、配置檔案Solid框架
- 以太坊Solidity程式語言開發框架————15、構建流程Solid框架
- 以太坊Solidity程式語言開發框架————16、Truffle命令指南Solid框架
- 以太坊Solidity程式語言開發框架————4、編譯合約Solid框架編譯
- 以太坊Solidity程式語言開發框架————6、構建應用Solid框架
- 以太坊Solidity程式語言開發框架————7、合約互動Solid框架
- 以太坊Solidity程式語言開發框架————8、測試合約Solid框架
- 以太坊Solidity程式語言開發框架————2、網路與APP部署Solid框架APP
- 以太坊Solidity程式語言開發框架————14、網路與APP部署Solid框架APP
- 用solidity語言開發代幣智慧合約Solid
- 分投趣fintoch系統合約開發分析(Solidity程式語言)Solid
- 太坊智慧合約開發第一篇:IDE對solidity語法的支援IDESolid
- 元宇宙NFT鏈遊開發(農人計劃系統開發)Solidity程式語言元宇宙Solid
- Solidity語言學習筆記————32、建立合約Solid筆記
- Solidity語言學習筆記————1、初識Solidity語言Solid筆記
- GO語言一個簡單的工程Go
- Hardhat 開發框架 - Solidity開發教程連載框架Solid
- 索拉迪(SolaRoad)系統開發技術/Solidity語言Solid
- Forsage佛薩奇合約矩陣(Solidity程式語言)系統開發程式碼詳情矩陣Solid
- 旺旺農場遊戲系統程式設計開發程式碼示例丨Solidity語言編寫遊戲程式設計Solid
- 國人開發的程式語言-“明”語言
- 新建一個最小的Makefile工程(C語言)C語言
- Opensae去中心化交易平臺系統Solidity語言開發中心化Solid
- 以DevExpress開發的WinFrom程式的多語言功能的實現devExpress
- C語言第一個程式C語言
- 搭建一個簡易框架 3秒建立一個WebApi介面框架WebAPI
- Go語言開發的Web框架都有哪些?GoWeb框架
- 20 個有用的 Go 語言微服務開發框架吐血總結!!!Go微服務框架
- Solidity語言學習筆記————3、Remix的基本使用Solid筆記REM
- 如何學習一門程式語言或框架框架
- olidity語言開發以太坊智慧合約中的繼承繼承
- Solidity語言編寫丨NFT數字藏品系統技術開發程式設計示例Solid程式設計