今年三月份开始使用WSL + truffle,那时候truffle刚到4.1.8版本(node 8.8.0),就一直用这个版本,没想到用到的却是一个最稳定的版本。
后来,由于4.1.8最高只支持solc的0.4.23,便将truffle升级到最新的4.1.14(node 也升级到10.5.0),噩梦便开始了:各种意想不到的坑,例如:
- fs.writeFileSync 跟 fs.existsSync的相对目录不一样。假设truffle的根目录下的test目录下有个文件 X.js,二者分别要这样访问:fs.writeFileSync(‘test//migrateResult.json’) fs.existsSync("…//test//migrateResult.json")
- 4.1.14版本,假如migrate时脚本中有多个合约,没等到所有合约部署完就会退出部署、没有任何错误提示
- 新版本莫名其妙地出现栈溢出提示:Maximum call stack size exeeded
- 发布合约到ropsten测试网络,但是提交源代码时无法通过验证。
等等一系列的问题,在将truffle会退到4.1.8版本(node 8.8.0)之后,一切正常了。。。。
安装nodejs 8.8.0: