记录truffle框架使用的过程以及一些坑
首先安装node.js 官网下载并安装
建议使用最新版吧,避免一些不明所以的坑
安装truffle框架
npm install -g truffle@5.07
为什么使用这个版本呢(我测试了好几个版本,感觉这个最好用!!!)
- 我一开始是不设置版本号直接安装,compile – migrate 编译,迁移部署都没有问题,但是当我执行测试命令的时候,会出现一个不明所以的错误(下面详见)
- truffle框架使用版本 ----网上关于配置使用的基本上都是4.*.*版本,我查到的最稳定是4.1.8,因为合约版本已经更新到5.0以上了,所以相应的要使用5.0以上的版本,截止到今天最新版本5.1.13
3.我的环境配置
安装使用 ganache(图形化界面) 或者ganache-cli
1.ganache 官网ganache直接下载
2.ganache-cli 通过指令下载
npm install -g ganache-cli
简单的项目测试
truffle维护了很多项目,可以直接使用。
windows环境下推荐使用Windows PowerShell(避免使用cmd,原因都懂得)
初始化新的文件夹
下载项目,通过指令,但是可能会报错,提示连接不到某个ip地址(被墙了)
truffle unbox metacoin
解决问题:
- 关闭* —时好时坏
- 利用git 直接拉去文件到本机
git clone [地址](https://truffle-box.github.io/)
编译合约
truffle compile
合约迁移部署
truffle migrate
测试合约
truffle test
最大boss出现
我第一次安装使用truffle 直接最新版本,等到执行truffle test时,出现一个不明所以的错误 (三四天纠结啊,ubuntu环境使用最新版,不会出现错误 亲测)
问题如下:
编译,迁移合约过程无错误,日志正常!!!
然后执行truffle test 合约报错
具体报错
TestAdoptionPets
1) "before all" hook: prepare suite
0 passing (554ms)
1 failing
1) TestAdoptionPets
"before all" hook: prepare suite:
TypeError: Error parsing J:/truffle_workplace/AdoptionPets/bare-box/contracts/AdoptionPets.sol: Cannot destructure property `body` of 'undefined' or 'null'.
at getImports (C:\Users\11712\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\compile-solidity\profiler\getImports.js:5:1)
at findContracts.then.then (C:\Users\11712\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\compile-solidity\profiler\index.js:145:1)
显示报错信息为
Cannot destructure property body
of ‘undefined’ or 'null’
心路历程
- 刚开始以为是webpack版本冲突,(我第一次安装过程安装了webpack,查了很多,以为webpack版本问题,但是通过多次版本测试之后,问题还在原地等我!!!!!)
- 咨询了小伙伴,webpack用来打包测试vue项目,就感觉使用过程中并没添加任何代码,改动,问题可能不在这儿,然后小伙伴建议升级node版本,但是事实证明依然无效
- 就想到是不是truffle版本问题,然后从4.**版本一直测试到5.**版本,虽然在使用4.1.8版本时(好像是)不会出现上述问题,但是考虑到合约版本更新,还是要用5.**版本