truffle 的版本区别非常大,而且,目前我并没有找到相关的资料,明确的介绍不同版本的差异,所以,目前,我也只能根据自己所使用过的版本来做介绍。
不过,很多版本我都是浅尝辄止,因为我的目的是找到一个高度可用的版本,而不是探索各个版本。
测试的版本
- 5.0.7
- 5.0.22
- 5.4.12
5.0.7
安装
这里直接
npm install truffle@5.0.7
初始化
truffle init
使用 5.0.7
进行 init
会出现下面的错误
1 | Preparing to download |
根据
解决方案如下
If anyone encounter the same problem, just add the following line in the /etc/hosts:
151.101.56.133 raw.githubusercontent.com
It will work.
edit: update hosts filename: /etc/hosts
注意,我的环境时 MBP
。
查看
truffle version
输出
Truffle v5.0.7 (core: 5.0.7)
Solidity v0.5.0 (solc-js)
Node v13.14.0
这里可以看出 solidity
的编译器是 0.5.0
版本的。
solc 编译器
truffle 最关键的就是看 solc 该怎么处理,而 solc 因为多次资源链接更换,现在想要通过
truffle compile
下载对应版本已经不行了。「目前,我还没找到在线相关的下载 solc 对应版本的方法」
而,5.0.7 版本,是通过把 solc 下载到 node_module 中,进行编译的,请看下面图片
所以,如果你改变 truffle-config.js 的 solc 版本后,会进行下载,但是,大概率下载不下来。
所以,这个版本最终放弃。
5.0.22
直接
npm install truffle@5.0.22
环境是
Truffle v5.0.22 (core: 5.0.22)
Solidity v0.5.0 (solc-js)
Node v13.14.0
Web3.js v1.0.0-beta.37
solc 编辑器
请参考
5.4.12
目前使用这个版本,推荐。
ps: 这个版本,我重复安装了十几次,每次都会有新的意外发生,究其原因就是网络的问题,非常烦躁。
安装 xcode
我的环境是 MBP,首先我们要安装 xcode,如果通过 app store 安装的话,将会有十几个G,所以,我们这里仅安装一些简单的。
使用
xcode-select --install
配置环境
npm: '8.1.2',
node: '16.13.1',
另外,我的源是 淘宝源,可以从上面的博文中找到。试了一下其他版本,没下载下来,不知道是真的下不下来,还是网或者其他原因。
这里有一个非常奇怪的点,就是,我的 nvm 使用后,只在当前的命令行窗口有用,开了新的窗口就又变成其他版本了。但是,好在其他版本可以正常编译。
安装 truffle
直接
npm install truffle@5.4.12
这里会遇到很多情况
- 卡在某一个包停下来了
- 卡在了最后一步
卡在某一个包停下来了
idealTree:multiaddr: sill fetch manifest varint@^5.0.2
idealTree:abstract-leveldown: sill placeDep ROOT seedrandom@3.0.5 OK for: @consento/sync-randombytes@1.0.5 want: ^3.0.5
可以单独安装这个包
"seedrandom": "3.0.5",
"varint": "^5.0.2"
上面两个包都是下不下来,然后单独安装的。
另外,如果你 ctrl + c 再次安装某一个单独包的时候出错了,请使用
rm -rf node_modules
npm cache clean -f
卡在了最后一步
reify:faker: timing reifyNode:node_modules/truffle Completed in 6873ms
或者
reify:truffle: http fetch GET 200 https://cdn.npmmirror.com/packages/truffle/5.4.12/truffle-5.4.12.tgz 14992ms (cache miss)
只能等待了。我个人怀疑,这次下载下来的包会在本地进行编译等工作,所以,最后一步的速度会非常慢。
其他
- 我试了公司的网还有家里的网都不行,最后连接了手机热点才能下下来
- 后来经过测试,即便是没有翻墙,借助淘宝源也是可以安装的,只不过需要耗费的时间非常多,但是,其他我安装了十几次,最终找到了这个行之有效的方法
solc 编辑器
值得庆幸的是,这一版本的 truffle
的 solc-bin
是可以通过 truffle compile
下下来的,看来这个版本的 url
指向 solc
对了。
另外,5.4.12
版本和上面 5.0.22
版本最终 solc
存放的地方也不一样,具体是哪里,目前,我还没找到,所以,现阶段只能在线下载。
下载还是蛮快的,但是,需要看好版本号。
- 0.8.1
- 0.8.11
我下载都很快。