vs code中运行需要下载插件solidity、truffle
环境依赖
需要下载
-
NodeJS v8.9.4 或 之后的版本
查看版本 node -v
-
Windows, Linux or Mac OS X
全局安装命令
npm install -g truffle
truffle命令查看是否创建成功
先创建一个新文件夹
mkdir ... cd ...
下载Box
但是需要翻墙
truffle unbox <box-name> (truffle unbox metacoin)
如果要创建没有合约的空工程,可以使用 truffle init,在引入智能合约
完成以上步骤后,你将会看到工程目录下有如下文件夹。
contracts/
合约放在这个目录下(Solidity contracts)migrations
脚本化部署文件test/
测试你的智能合约和应用文件夹truffle.js
truffle配置文件
创建开发测试链
truffle develop
编译和部署
编译合约
compile
把编译完成的合约部署到测试链中
migrate
开启一个前端页面,进行测试
npm run dev
localhost:8080
报错处理
一、
因为这个truffle unbox metacoin命令,无法加载boxes,
然后从truffle官网boxes,直接下载meta coin压缩包,解压后传入测试文件
二、
根据上面步骤,开启新的命令端口输入npm run dev时报错
报错说明时package.json未找到
查询后说输入npm install 安装依赖,还是报错
说明时package.json未找到
查看文件里只有package-lock.json文件,尝试改名为package.json文件
输入npm install,如下
在尝试输入npm run dev,如下报错
搜索后可能是package.json文件中没有dev脚本,不会编写脚本,从网上搜索别人博客上的dev脚本,但是文件编写不一样,无法匹配,不知道怎么解决
三、
再从truffle官网找另一个boxes示例,webpack下载传入后,按上面步骤进行
这个包中有个文件夹app里面有完整的package.json文件,包括dev脚本
compile编译和部署时vs code插件提示,需要下载
打开新端口执行npm run dev 时,进入app文件
出现一个新报错
图片找不到了,具体是下面的报错
'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序
在跟文件中输入npm install安装依赖即可
在执行npm run dev
查询后说
node.js 的版本问题
因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错。
修改package.json,在相关构建命令之前加入SET NODE_OPTIONS=--openssl-legacy-provider
"scripts": { "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && webpack", "build": "SET NODE_OPTIONS=--openssl-legacy-provider && webpack-dev-server" },
最后查看网址localhost:8080,显示localhost拒绝访问,不会修改
一会后再次尝试可以进入了