6. 构建应用
默认构建
Truffle集成了默认的构建来方便使用。但也许不适合每个项目,所以你也许需要其它的来打包你的应用。在3. 构建流程里查看更多信息。默认的构造目标是web应用,但也可以很容易的转变为其它的构造流程,比如适用于命令行或库的流程。
特性
默认构建有一些特性来帮助你快速的开始:
- 在浏览器内自动的初始化你的应用,包括引入你编译的合约,部署的合约信息,和以太坊客户端信息配置。
- 包含常见的依赖,如web3和Ether 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
目录来指定的。
你可以在任何时间改变配置和目录结构。并不强制要求需要javascript
和css
文件目录,所以删除构建配置文件中的对应配置就可以了。
特别注意:如果你想默认构建在前端初始化你的应用,务必保证有一个构造目标app.js
,因为默认构建会将相关代码附加到这个文件,而不是其它文件。
命令
要创建你的前端工程,执行:
truffle build
构建结果
构建结果存在./build
目录。所以合约文件则在对应的位置./build/contracts
。
注意事项
默认构建虽简单易用,但它仍有一些缺点:
当前不支持
import
,require
等。所以不能提供browserify
,Webpack
和CommonJS
这样的工具。由此让依赖管理变得有些困难。这是一套自定义的构建系统,与其它流行构建系统不兼容。
它可以扩展,但是自定义的方法和API。
默认构建在将来可能会被取代,但在较长时间里,都将会是默认的以支持之前构建的DAPP.Truffle提供了许多方式来切换到不同的构建流程,可以在3. 构建流程这里找到更多的例子。
如果任何问题,欢迎留言批评指正。
处于某些特定的环境下,可以看到评论框,欢迎留言交流^_^。