文章目录
- 第一次尝试安装(fail)
- 简单介绍
- 安装配置
- truffle命令报错:'truffle' 不是内部或外部命令
- truffle命令报错:Cannot find module 'fs/promises'
- 第二次尝试安装(fail)
- 安装和配置npm
- 安装ganache-cli节点仿真器
- 安装 solc 编译器
- 安装 web 库
- 安装 truffle 开发框架
- 报错:node 12 版本过低
- 第三次安装(success)
- 安装 node 最新版本
- 安装其他组件
参考文章:
- 以太坊开发框架——Truffle的基础使用
- 区块链(2)以太坊开发框架Truffle教程(Windows)(主要参考)
第一次尝试安装(fail)
简单介绍
Truffle 是目前最流行的 以太坊 DApp 开发框架
,(按照官网说法)是一个世
界级的开发环境和测试框架,也是所有使用了 EVM 的区块链的资产管理通道,它基于 JavaScript,致力于让以太坊上的开发变得简单。
Truffle 有以下功能:
- 内置的智能合约编译,链接,部署和二进制文件的管理。
- 合约自动测试,方便快速开发。
- 脚本化的、可扩展的部署与发布框架。
- 可部署到任意数量公网或私网的网络环境管理功能
- 使用 EthPM 和 NPM 提供的包管理,使用 ERC190 标准。
- 与合约直接通信的直接交互控制台(写完合约就可以命令行里验证了)。
- 可配的构建流程,支持紧密集成。
- 在 Truffle 环境里支持执行外部的脚本。
使用 Truffle需要三个东西,分别如下:
- Nodejs :是一个基于google浏览器Chrome里面的JavaScript引擎(V8)的一个平台,可以很容易的构建快速而具有扩展性的网络程序。
- Truffle :以太坊开发框架
- Ganache CLI:是在本地使用内存模拟的一个以太坊环境,其基于Node.js,以前叫TestRPC,在开发过程中使用。
安装配置
node(JS解析器):本地已安装过,版本 v12.18.3。设置 npm 全局模块目录,避免挤占 C 盘空间:
npm config set prefix D:\npm\prefix
Truffle(Dapp开发框架):全局安装 npm –g install truffle
,版本为 truffle@5.7.0:
(后续使用 truffle 遇到报错,此处安装 truffle 时未成功安装相关模块: mocha 、fsevents)
Ganache CLI(模拟以太坊环境):全局安装 npm install -g ganache-cli
,版本为 ganache-cli@6.12.2:
truffle命令报错:‘truffle’ 不是内部或外部命令
参考文章:npm安装的全局包/工具不能使用,不是内部/外部命令
需要把 npm 的全局模块路径添加到系统变量 path 中,添加如下路径:
D:\npm\prefix
truffle命令报错:Cannot find module ‘fs/promises’
参考文章:
- electron打包后启动应用,提示cannot find module fs/promises的解决(情况不太相同,我是npm下载truffle时发现,平台不支持truffle的相关模块导致模块缺失)
- windows下node升级到最新版本(亲测有效)
尝试使用最新的 node 版本重新下载:访问 node官网下载地址,发现最新版本是 18.12.1(又尝试了 18.0.0 发现还是无法切换版本)
npm install -g nvmw
nvmw install 18.12.1
nvmw use 18.12.1
问题分析:npm下载truffle时发现,平台不支持truffle的相关模块导致模块缺失,其中 fsevents 模块依赖 darwin 操作系统(苹果开发的 unix 操作系统)
第二次尝试安装(fail)
参考文章:Win10 搭建truffle框架
安装和配置npm
本地已有开发环境 | 版本信息 |
---|---|
node | v12.18.3 |
npm | 6.14.6 |
设置安装模块和缓存文件的目录:
npm config set prefix "D:\npm\myNodeglobal"
npm config set cache "D:\npm\myNodecache"
新建系统变量:NODE_PATH
/ D:\npm\node_modules
,PATH 变量中添加值 D:\npm\myNodeglobal
。
npm换源: 由于node是从国外服务器下载第三方依赖包,下载的速度会非常缓慢而且有发生异常的可能,所以需要把npm的镜像源换成淘宝的镜像源。
npm config set registry https://registry.npm.taobao.org
npm config get registry
安装ganache-cli节点仿真器
参考文章:Ganache CLI - 用于测试和开发的快速以太坊RPC客户端
Ganache CLI是以太坊开发工具Truffle套件的一部分,是以太坊开发私有区块链的Ganache命令行版本。
Ganache CLI使用 ethereumjs 来模拟完整的客户端行为,使开发以太坊应用程序更快,更轻松,更安全。它还包括所有主流的RPC函数和功能(如event),并可以准确地运行以使开发变得容易。
安装和验证命令如下,解析器文件位于 D:\npm\myNodeglobal
目录,系统变量无需再添加。
npm install -g ganache-cli
ganache-cli
安装 solc 编译器
安装命令如下,版本:solc@0.8.17
npm install -g solc
solcjs -V
安装 web 库
安装命令如下,版本:web3@1.8.1
npm install -g web3
安装 truffle 开发框架
安装命令:npm install -g truffle
遇到报错如下,还有其他报错提示 node
版本需要大于等于 14.16。
Error: Error while attempting to download and cache solc 0.5.16: Command failed: node ./build/cli.bundled.js obtain --solc=0.5.16
at postinstallObtain (D:\npm\myNodeglobal\node_modules\truffle\scripts\postinstall.js:13:11)
at Object.<anonymous> (D:\npm\myNodeglobal\node_modules\truffle\scripts\postinstall.js:20:3)
报错:node 12 版本过低
解决办法:访问 https://nodejs.org/en/download/ 下载最新版本 node。
第三次安装(success)
参考文章:Win10 搭建truffle框架(同第二次尝试,只是node版本变化了)
安装 node 最新版本
访问 https://nodejs.org/en/download/ 下载最新版本 node:
Node.js v18.12.1
查看开发环境 | 版本信息 |
---|---|
node | v18.12.1 |
npm | v8.19.2 |
设置安装模块和缓存文件的目录:
npm config set prefix "D:\nodejs\myNodeglobal"
npm config set cache "D:\nodejs\myNodecache"
新建系统变量:NODE_PATH
/ D:\nodejs\node_modules
,PATH 变量中添加值 D:\nodejs\myNodeglobal
。
npm换源: 由于node是从国外服务器下载第三方依赖包,下载的速度会非常缓慢而且有发生异常的可能,所以需要把npm的镜像源换成淘宝的镜像源。
npm config set registry https://registry.npm.taobao.org
npm config get registry
安装其他组件
安装ganache-cli节点仿真器:v6.12.2
npm install -g ganache-cli
ganache-cli
安装 solc 编译器:solc@0.8.17
npm install -g solc
solcjs -V
安装 web 库::web3@1.8.1
npm install -g web3
安装 truffle 开发框架:换了版本以后没有报错!
npm install -g truffle
安装 webpack 打包器:
npm install -g webpack