6. 构建应用

原文地址:http://truffleframework.com/docs/getting_started/build

默认构建

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. 构建流程这里找到更多的例子。

如果任何问题,欢迎留言批评指正。

处于某些特定的环境下,可以看到评论框,欢迎留言交流^_^。