win10 安装truffle框架 关于一些遇到的坑

记录truffle框架使用的过程以及一些坑 首先安装node.js 官网下载并安装 建议使用最新版吧,避免一些不明所以的坑
安装truffle框架

npm install -g truffle@5.07

为什么使用这个版本呢(我测试了好几个版本,感觉这个最好用!!!)
  1. 我一开始是不设置版本号直接安装,compile – migrate 编译,迁移部署都没有问题,但是当我执行测试命令的时候,会出现一个不明所以的错误(下面详见)
  2. truffle框架使用版本 ----网上关于配置使用的基本上都是4.*.*版本,我查到的最稳定是4.1.8,因为合约版本已经更新到5.0以上了,所以相应的要使用5.0以上的版本,截止到今天最新版本5.1.13
    3.我的环境配置
    win10 安装truffle框架 关于一些遇到的坑
    文章图片
安装使用 ganache(图形化界面) 或者ganache-cli 1.ganache 官网ganache直接下载
2.ganache-cli 通过指令下载
npm install -g ganache-cli

简单的项目测试
truffle维护了很多项目,可以直接使用。
windows环境下推荐使用Windows PowerShell(避免使用cmd,原因都懂得) 初始化新的文件夹 下载项目,通过指令,但是可能会报错,提示连接不到某个ip地址(被墙了)
truffle unbox metacoin

【win10 安装truffle框架 关于一些遇到的坑】解决问题:
  1. 关闭梯子 —时好时坏
  2. 利用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 suite0 passing (554ms) 1 failing1) 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’
心路历程
  1. 刚开始以为是webpack版本冲突,(我第一次安装过程安装了webpack,查了很多,以为webpack版本问题,但是通过多次版本测试之后,问题还在原地等我!!!!!)
  2. 咨询了小伙伴,webpack用来打包测试vue项目,就感觉使用过程中并没添加任何代码,改动,问题可能不在这儿,然后小伙伴建议升级node版本,但是事实证明依然无效
  3. 就想到是不是truffle版本问题,然后从4.**版本一直测试到5.**版本,虽然在使用4.1.8版本时(好像是)不会出现上述问题,但是考虑到合约版本更新,还是要用5.**版本
至此问题结束,感觉对windows环境并不友好,这种错误压根不知道错在哪儿,难道要换个mac?????? 2020.3.20补充
  • 最新版truffle5.1.16 我测试依然报错(仅代表个人)
  • 文章开头安装truffle@5.0.7版本可用(反正我可用)
  • 文章安装指令都是可用的(问题都是我自己遇到的)
  • 如果发现truffle指令运行成功,但是没有作用----不妨试试+" --reset"

    推荐阅读