无法为 nodejs web3 推送到 heroku - 它正在尝试找到 web3@1.0.0-beta.42 postinstall

Posted

技术标签:

【中文标题】无法为 nodejs web3 推送到 heroku - 它正在尝试找到 web3@1.0.0-beta.42 postinstall【英文标题】:Failing to push to heroku for nodejs web3 - it is trying to find web3@1.0.0-beta.42 postinstall 【发布时间】:2019-06-30 20:44:42 【问题描述】:

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

node angular-patch.js 模块.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 然后运行 ​​npm install 以在我的本地机器上重新安装它,它在我的本地机器上抛出了同样的问题。但是,如果我手动 npm i --save webe3@1.0.0-beta.41,它确实可以顺利部署。

怀疑:npm install(从 package.json 安装 node-modules 的通用在 web3 上被破坏了)。这就是为什么它在 heroku 和本地都有突破。但是,这只是一个嫌疑人:)。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于无法为 nodejs web3 推送到 heroku - 它正在尝试找到 web3@1.0.0-beta.42 postinstall的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs - 简单的 socket.io 示例不会将数据推送到所有浏览器

将本地 WebRTC 流推送到云端的 NodeJS 服务器

将元素推送到嵌套数组猫鼬 nodejs

NodeJS + SocketIO 推送到移动应用

如何将实时数据从 nodejs 服务器推送到 AngularJS?

如何在nodeJS的mysql查询中将值推送到数组?