1703879323
1703879324
1703879325
1703879326
或者,可以给想运行的特定文件指定一个路径。比如,
1703879327
1703879328
1703879329
1703879330
1703879331
1703879332
1703879333
1703879335
区块链项目开发指南 8.4.7 包管理
1703879336
1703879337
truffle包(package)是智能合约及其artifacts的集合。一个包可以依赖于零个或者多个包,即使用包的智能合约和artifacts。当使用自己项目的包时,在两个地方将会使用包的智能合约和artifacts:项目的合约里;项目的JavaScript代码(移植和测试)里。
1703879338
1703879339
用truffle创建的项目默认有特定的布局,这使它们能够当作包使用。truffle包中最重要的目录如下:
1703879340
1703879341
·/contracts。
1703879342
1703879343
·/build/contracts(由truffle创建)。
1703879344
1703879345
第一个目录是合约目录,其中包括原始Solidity合约;第二个目录是/build/contracts目录,其中以.json文件形式包含创建artifact。
1703879346
1703879347
truffle支持两种包构建:npm和ethpm包。必须知道npm包是什么。先来看ethpm包是什么。ethpm是以太坊的包注册中心。可以在https://www.ethpm.com/发现所有ethpm包。它遵循ERC190(https://github.com/ethereum/EIPs/issues/190)规范发布和使用智能合约包。
1703879348
1703879349
1.通过NPM进行包管理
1703879350
1703879351
truffle默认与npm进行整合,且知道项目node_modules目录(如果存在)。这意味着可以通过npm使用和分配合约或者库,使用户代码对其他人可用以及使其他人的代码对用户可用。还可以使项目中有一个package.json文件。可以在项目中简单安装任何npm包,并在任何JavaScript文件中导入它,但是只有在它包含前面提到的两个目录的情况下才会被称为truffle包。在truffle项目中安装npm包,与在任何node.js app中安装npm包相同。
1703879352
1703879353
2.通过ethpm进行包管理
1703879354
1703879355
在安装ethpm包时,如果没有installed_contracts目录,就创建一个。该目录可以用类似于node_modules目录的方式处理。
1703879356
1703879357
从ethpm安装包几乎和通过NPM安装包一样简单,只要简单运行如下命令:
1703879358
1703879359
1703879360
1703879361
1703879362
还可以安装特定版本的包:
1703879363
1703879364
1703879365
1703879366
1703879367
就像NPM一样,ethpm版本遵循语义版本。项目还可以定义一个ethpm.json文件,它对于npm包来说类似于package.json。为了安装ethpm.json文件中列出的所有相关内容,运行如下代码:
1703879368
1703879369
1703879370
1703879371
1703879372
ethpm.json文件的示例如下:
[
上一页 ]
[ :1.703879323e+09 ]
[
下一页 ]