以太坊Solidity程式語言開發框架————6、構建應用

FLy_鵬程萬里發表於2018-07-13

預設構建

Truffle整合了預設的構建來方便使用。但也許不適合每個專案,所以你也許需要其它的來打包你的應用。在3. 構建流程裡檢視更多資訊。預設的構造目標是web應用,但也可以很容易的轉變為其它的構造流程,比如適用於命令列或庫的流程。

特性

預設構建有一些特性來幫助你快速的開始:

  • 在瀏覽器內自動的初始化你的應用,包括引入你編譯的合約,部署的合約資訊,和以太坊客戶端資訊配置。
  • 包含常見的依賴,如web3Ether Pudding
  • 內建支援ES6和JSX
  • SASS支援
  • Uglifyjs支援

配置

你可以隨間的修改預設的構建內容,原始的構建內容目錄如下:

app/
- javascripts/
  - app.js
- stylesheets/
  - app.css
- images/
- index.html

1. 配置檔案中的構建配置檔案如下:

{
  "build": {
    // Copy ./app/index.html (right hand side) to ./build/index.html (left hand side).
    "index.html": "index.html",

    // Process all files in the array, concatenating them together
    // to create a resultant app.js
    "app.js": [
      "javascripts/app.js"
    ],

    // Process all files in the array, concatenating them together
    // to create a resultant app.css
    "app.css": [
      "stylesheets/app.scss"
    ],

    // Copy over the whole directory to the build destination.
    "images/": "images/"
  }
}

配置檔案中的配置鍵描述了最終的打包目標名稱,右邊的配置目錄或檔案陣列則是要打包的目錄的內容。打包過程根據檔案擴充套件,將檔案連線形成一個結果檔案,並放到構建的目標位置。如果指定的是一個字串而不是一個陣列,這個字串代指的檔案如果需要會直接拷到對應的構建目錄。如果字串以“/”結尾,則會被識別為一個目錄,整個目錄會不經調整直接拷貝到對應的目錄。所以的指定值都是預設相對於/app目錄來指定的。

你可以在任何時間改變配置和目錄結構。並不強制要求需要javascriptcss檔案目錄,所以刪除構建配置檔案中的對應配置就可以了。

特別注意:如果你想預設構建在前端初始化你的應用,務必保證有一個構造目標app.js,因為預設構建會將相關程式碼附加到這個檔案,而不是其它檔案。

命令

要建立你的前端工程,執行:

truffle build

構建結果

構建結果存在./build目錄。所以合約檔案則在對應的位置./build/contracts

注意事項

預設構建雖簡單易用,但它仍有一些缺點:

  • 當前不支援importrequire等。所以不能提供browserifyWebpackCommonJS這樣的工具。由此讓依賴管理變得有些困難。

  • 這是一套自定義的構建系統,與其它流行構建系統不相容。

  • 它可以擴充套件,但是自定義的方法和API。

預設構建在將來可能會被取代,但在較長時間裡,都將會是預設的以支援之前構建的DAPP.Truffle提供了許多方式來切換到不同的構建流程,可以在3. 構建流程這裡找到更多的例子。

如果任何問題,歡迎留言批評指正。

相關文章