参考文章《Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误)》https://www.jianshu.com/p/eac99bb0a9bc
发现无法调用main.js,不管咋改都是错误的,
查看版本号:truffle version
Truffle v4.1.3 (core: 4.1.3)
Solidity v0.4.19 (solc-js)
原来truffle又升级到了4.0,以前3.0的玩法已经不可用了
参考truffle的最新文档http://truffleframework.com/docs/getting_started/project
找到一个比较简单的方法,就是使用 Truffle Boxes,这个文章例子里面的metacoin过于简单,无法通过网页打开验证
因此我参考http://truffleframework.com/boxes/里面的webpack做了验证
具体参考原文:http://truffleframework.com/boxes/webpack
只是这个网页有时候打不开,比较奇怪
步骤如下:
1、下载webpack
mkdir test
cd test
truffle unbox webpack
耗时比较久
2、编译和发布
truffle develop
打开了一个控制台
compile
migrate
分别是编译和发布
3、启动ganache,在linux上https://github.com/trufflesuite/ganache/releases
下载个ganache-1.2.2-x86_64.AppImage,右键属性修改为可执行,双击就可以启动
修改truffle.js中ganache为development,否则报no network specified
然后在命令行运行truffle migrate发布到ganache上
4、新打开一个终端窗口terminal
npm run dev
5、在浏览器中打开http://localhost:8080
注意还是需要网络,有些资源要下载,这里的chrome如果安装了metamsk就总是出现错误:Couldn't get any accounts! Make sure your Ethereum client is configured correctly
必须关闭metamask插件
6、在浏览器中测试
先去truffle develop控制台找个账户
web3.eth.accounts
显示:
[ '0x627306090abab3a6e1400e9345bc60c78a8bef57',
'0xf17f52151ebef6c7334fad080c5704d77216b732',
'0xc5fdf4076b8f3a5357c5e395ab970b5b54098fef',
'0x821aea9a577a9b44299b9c15c88cf3087f3b5544',
'0x0d1d4e623d10f9fba5db95830f7d3839406c6af2',
'0x2932b7a2355d6fecc4b5c0b6bd44cc31df247a2e',
'0x2191ef87e392377ec08e7c08eb105ef5448eced5',
'0x0f4f2ac550a1b4e2280d04c21cea7ebd822934b5',
'0x6330a553fc93768f612722bb8c2ec78ac90b3bbc',
'0x5aeda56215b167893e80b4fe645ba6d5bab767de' ]
随便选一个(不要是第一个,因为这个是发布帐号,也就是发钱的帐号)
输入数量和地址进行测试
7、这个时候可以回到test目录查看源代码和实现了
在子目录app中的index.html就是网页的实现
javascripts\app.js 就是web3的实现,可以看到这里合约的发布和调用方式都已经和truffle3.0里面的写法完全不同了
关键是这个文件,参考这个修改就简单很多