首页 > 解决方案 > 无法为 nodejs web3 推送到 heroku - 它正在尝试找到 web3@1.0.0-beta.42 postinstall

问题描述

我昨天(2/6/19)用 web3@1.0.0-beta-41 推送了一个 node.js 与 DApp 的反应,它起作用了。从今天早上开始,当我尝试推送相同的代码时,它会出现 web3@1.0.0-beta.42 postinstall C:\BaandaDev\baandadev-03\client\node_modules\web3

节点 angular-patch.js module.js:549 抛出错误;^ 错误:找不到模块 'C:\BaandaDev\baandadev-03\client\node_modules\web3\angular-patch.js' (请忽略 baanda ...这些是我的目录名称,但错误来自节点模块)

问题是,“为什么它在我什至没有要求的时候寻找 web3@1.0.0-beta.42?我已经将版本减少到 web3@1.0.0.beta-37 并且 heroku 仍然在寻找 beta。 42角补丁(我什至没有使用角)。最糟糕的是......它昨天工作了。我唯一能想到的是,以太坊昨天发布了web3@1.0.0-beta.42。但是,它没有解释为什么heroku会为其他东西寻找补丁.有趣的是,当我使用heroku git:clone -a baandadev03-t2之类的东西克隆在本地机器中在heroku中工作的那个时,然后运行npm install重新替换它在我的本地机器上,它在我的本地机器上抛出了同样的问题.但是,如果我手动 npm i --save webe3@1.0.0-beta.41 ,它确实可以顺利部署。

怀疑: npm install (从 package.json 安装节点模块的通用在 web3 中以某种方式损坏)。这就是为什么它在 heroku 和本地都有突破。但是,这只是一个嫌疑人:)。

$ git push heroku master (heroku 应该把它推进去,不要寻找我不要求的模块:))。请帮忙。

标签: node.jsherokunpmweb3

解决方案


可能是因为 web3 npm 坏了。他们(web3)在 3 天内发布了 web1.0.0-beta.40 到 43 版本。但是,我也意识到,用于从 package.json (node.js) 生成节点模块的通用 npm install 正在两边的 web3 上中断。当他们尝试生成节点模块时,在 heroku 中推送后。而且,当我将版本从 heroku 克隆到我自己的笔记本电脑时,它会在同一个地方哭泣(在 web3 上创建节点模块时)。这两个地方都在寻找它找不到的角度库(我不知道他们为什么会这样做——一个错误?)。而且,即使我指定了低得多的 web3 版本,它仍然会寻找它过去从未做过的事情。

我已经报告了这个错误,希望他们能尽快修复它。我从我的应用程序中删除了所有 web3 引用,它很好地进入了 heroku。但是,当应用程序依赖于智能合约时,这并不好......对吧:)?


推荐阅读