1.foundry环境配置
1.安装最新版本ubuntu
2.sudo apt install curl
3.sudo apt install git
3.curl -L https://foundry.paradigm.xyz | bash
4.打开新的命令行foundryup
5.创建一个项目文件夹mkdir 项目名称
6.cd 项目名称
7.forge init --no-git
或者forge init
(报错可忽略)
8.安装nodejs
*注意版本这里要选择14及以上,且15不能选,建议选14
curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
如果出错了要卸载nodejs,可以参考这个文章,来避免文件覆盖冲突问题
https://blog.51cto.com/echohye/6236954
9.npx create-react-app ui
10.至此基本环境配置完毕,开始构建项目吧!
2.报错解决
在配置foundry开发环境时,遇到了许多的坑:
1.开发系统一定要选用最新版本的ubuntu(低版本也不行),建议不要用windows或者centos
2.安装git用apt(git为后面安装foundry用)
3.下载foundry时,curl报错
解决方法:不要用snap安装curl,用apt
成功
然后打开一个新的terminal继续
5.forge init
时报错
这是与git关联配置的问题,详情可以看
https://github.com/foundry-rs/foundry/issues/231
解决方法: forge init --no-git
,这是一个可以让git不报错的方法,但是无法确定在某些情况下是否适用
这种情况一般是网络问题,可以检查一下:物理机是否开了代理;连接的网络是否为学校或单位内网。
很多时候连接github出现错误都是由于网络原因引起的。
4.nodejs应该用PPA方式安装;apt方式会得到旧版本(10)的nodejs,foundry要求14及以上;tar方式解压设置软连接时,最新版本22的Ubuntu文件目录结构与旧版本有所不同,网上的教程一般都是针对旧版本的。
所以,使用PPA方式最佳,并且应当选择大于等于14且不等于15的版本。
3.运行一个现有的项目
这里依然以uniswapv3clone为例
步骤:
1.forge install
这一步是加载lib里的依赖,如果出现git报错,可以考虑使用:forge install --no-git
2.部署合约,参考:
https://y1cunhui.github.io/uniswapV3-book-zh-cn/docs/milestone_1/deployment/
3.启动react-app。进入ui目录,使用yarn start
如果出现报错 no such command,可以参考这个文章:
https://stackoverflow.com/questions/47137086/starting-react-app-from-pulled-github-project
参考这个回答:
//Step 1:
git clone [repository url]
//Step 2:
cd [local repository]
//Step 3:
//Check package.json file and ensure scripts are notated as below:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
//Step 4:
/* Delete the node_modules folder and any 'lock' files such as
yarn.lock or package-lock.json if present.*/
//Step 5:
npm install
//Step 6:
npm start
然后我们删除这3个文件,再执行后面的命令
reactapp成功启动,自动弹出了3000端口,稍等几十秒即可出现界面
NICE!
参考文章:
1.https://blog.csdn.net/WongSSH/article/details/125837346?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-125837346-blog-130399689.235%5Ev38%5Epc_relevant_anti_t3_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-125837346-blog-130399689.235%5Ev38%5Epc_relevant_anti_t3_base&utm_relevant_index=2
2.https://blog.csdn.net/weixin_46128755/article/details/126949282?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169266809816800215095835%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169266809816800215095835&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-126949282-null-null.142^v93^chatgptT3_2&utm_term=ubuntu%20%E5%AE%89%E8%A3%85node&spm=1018.2226.3001.4187