以太坊 Web3.js 返回“找不到模块‘web3-requestManager’”
Posted
技术标签:
【中文标题】以太坊 Web3.js 返回“找不到模块‘web3-requestManager’”【英文标题】:Ethereum Web3.js returns "Cannot find module 'web3-requestManager'" 【发布时间】:2018-01-07 15:15:40 【问题描述】:我正在尝试在 macosx 上开始使用带有节点 6.11.1 的 Ethereum Web3.js
我使用以下命令安装了 web3:
npm 安装 web3
然后我启动这个 - 显然 - 简单的节点命令:
Web3 = 要求('web3');
嗯,它返回以下错误:
module.js:471
throw err;
^
Error: Cannot find module 'web3-requestManager'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/fremente/Dropbox/Influx Design/Web htdocs/ethereum/node_modules/web3/packages/web3-core/src/index.js:26:22)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
它看起来需要一些未随包一起安装的模块(例如“web3-requestManager”)。
这是我的 package.json
"name": "ethereum",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies":
"ethereumjs-testrpc": "^4.0.1",
"solc": "^0.4.13",
"web3": "^1.0.0-beta2"
,
"devDependencies": ,
"scripts":
"test": "echo \"Error: no test specified\" && exit 1"
,
"author": "",
"license": "ISC"
有什么想法吗?我是不是做错了什么?
【问题讨论】:
为了完成,在库的 git repo 中有一个未解决的问题:github.com/ethereum/web3.js/issues/966 我打开了那个问题???? 我解决了安装 0.4 版本 这是一个包重命名问题,请在 .bashrc NODE_PATH=$HOME/node_modules 中添加。问题就解决了。 【参考方案1】:npm install ethereum/web3.js
应该能解决你的问题
【讨论】:
我必须先使用它来清除上面的错误,然后找不到我的元掩码帐户,所以我不得不使用 web3@1.0.0-beta.34【参考方案2】:问题来自于使用 web3 的 beta 版本,它目前不稳定,目前正在大量开发中,您有两种选择之一,
使用我认为的稳定版本 0.23 或类似的东西
或手动安装所有需要的依赖项,我不推荐此解决方案用于稳定的 dapp,因为目前情况确实不稳定
【讨论】:
目前它非常不稳定,但我使用Web.js
v1.0-beta18
整理了一个示例repo,它确实有效(它具有正确的依赖关系):github.com/leopoldjoy/react-ethereum-dapp-example
你是对的,就像我在上面的解决方案中所说的那样,你可以手动安装所有依赖项,web3 v1.0 可以工作,但是,即使在安装了所有依赖项之后,我也注意到了一些边缘情况,老实说,像这样的问题这些清楚地表明 web 1.0v 目前不应该用于任何生产代码。【参考方案3】:
我通过删除node_modules
文件夹、再次运行npm install
并手动安装web3js
以及package.json
列表解决了这个问题:
向 package.json 添加依赖
"web3": "^1.0.0-beta.31"
重建模块
rm -rf node_modules
npm install
手动安装 web3
npm install web3@1.0.0-beta.31
【讨论】:
【参考方案4】:在我的 Windows 10 机器上安装 git 有帮助。没有它,依赖项无法正确安装。 https://git-scm.com/downloads
【讨论】:
【参考方案5】:npm install ethereum/web3.js
解决了我的问题。
希望它也对你有用。
【讨论】:
【参考方案6】:我正面临着这个确切的问题:web3@1.0.0-beta.26
我已通过将节点从 v6.11.3
升级到 v8.9.4
来解决此问题。
我已删除 node_modules
文件夹并运行:npm install
以重建模块。
我认为 web3 正在使用仅受节点版本 8.x.x 支持的功能。
【讨论】:
【参考方案7】:我通过固定到1.0.0-beta.29
版本解决了web3-requestManager
问题。之前是安装1.0.0-beta.2
。
【讨论】:
【参考方案8】:我目前使用的是 web3 1.0 版本。我也在使用 macOS。如果你也在使用这个版本,试试这个:
Running npm install ethereum/web3.js
【讨论】:
以上是关于以太坊 Web3.js 返回“找不到模块‘web3-requestManager’”的主要内容,如果未能解决你的问题,请参考以下文章