【问题标题】:Heroku deploy ends with error npm ERR! 404 Not Found: event-stream@3.3.6Heroku 部署以错误 npm ERR 结束! 404 未找到:事件流@3.3.6
【发布时间】:2018-12-07 08:16:05
【问题描述】:

我正在尝试将 nodejs 部署到 heroku(或 firebase),我收到与 event-stream@3.3.6 相关的相同错误。 我读到它被解雇了,但是当更新到 4.0.1 时,我仍然得到同样的错误。 我试图卸载并重新安装并删除节点模块路径但没有成功。 有什么建议吗?

remote:        NPM_CONFIG_LOGLEVEL=error
remote:        NODE_ENV=production
remote:        NODE_MODULES_CACHE=true
remote:        NODE_VERBOSE=false
remote:
remote: -----> Installing binaries
remote:        engines.node (package.json):  unspecified
remote:        engines.npm (package.json):   unspecified (use default)
remote:
remote:        Resolving node version 10.x...
remote:        Downloading and installing node 10.14.1...
remote:        Using default npm version: 6.4.1
remote:
remote: -----> Building dependencies
remote:        Installing node modules (package.json + package-lock)
remote:        npm ERR! code E404
remote:        npm ERR! 404 Not Found: event-stream@3.3.6
remote:
remote:        npm ERR! A complete log of this run can be found in:
remote:        npm ERR!     /tmp/npmcache.i7KQx/_logs/2018-12- 
06T15_24_26_926Z- 
debug.log

我的 package.json: package.json

我的 package-lock.json: package-lock.json

【问题讨论】:

  • event-stream@3.3.6 被黑客入侵并从 npm 中删除。使用 3.3.5 或 4.x 版本。运行npm audit fix 解决问题。
  • 试过了,3.3.5 或 4.x 都没有用。它坚持有3.3.6
  • 已修复,谢谢。我认为问题在于 heroku 被锁定在同一个存储库中,而我的试验是徒劳的。我必须关闭/打开 cmd 才能重置。

标签: node.js json heroku npm


【解决方案1】:

我不必删除整个 node_modules 目录,并且能够按照适当的步骤解决同样的问题,首先在代码编辑器中进行搜索(我使用 VS Code)并查找整个项目目录中都提到了这个特定版本。

remote:        Installing node modules (package.json + package-lock)
remote:        npm ERR! code E404
remote:        npm ERR! 404 Not Found: event-stream@3.3.6

使用最新版本更新您看到受损引用版本的所有实例。在这篇文章的时候,我更新到4.0.1。 保存所有更改并在文件目录中运行

npm i event-stream --save and you should see a success 

保存更改以更新软件包后运行npm install,您应该会看到如下内容:

+ event-stream@4.0.1
updated 1 package and audited 2504 packages in 5.716s
found 0 vulnerabilities

但是等等,错误仍然存​​在???你记得提交更改吗?我一开始没有。于是又报错了。

remote:        npm ERR! code E404
remote:        npm ERR! 404 Not Found: event-stream@3.3.6
remote:        
remote:        npm ERR! A complete log of this run can be found in:
remote:        npm ERR!     /tmp/npmcache.i1VvE/_logs/2018-12-14T22_03_01_715Z- 
debug.log

关于 Github 部署的新手注意事项 -- 如果您正在使用 git push heroku master 来部署您的应用程序,请确保将您的所有 package.jsonpackage.lock.json 更改提交到项目的主分支并合并代码,否则,Heroku 不会接受您的更改,因为它总是看起来反映您的主分支。 新手错误,但在使用多个分支时很容易忽略。

瞧,部署成功了

remote: -----> Building dependencies
remote:        Installing node modules (package.json + package-lock)
remote:        
remote:        > nodemon@1.18.6 postinstall 
/tmp/build_b1cf3a0085ddaf6796dc22cf8066c082/node_modules/nodemon
remote:        > node bin/postinstall || exit 0

您现在可以前往 Heroku 验证构建并希望看到您的工作已部署。

【讨论】:

  • 想补充一点,您不需要手动查找和更改该依赖项的版本,npm i event-stream --save 将为您完成。所以,你先这样做,然后是npm install,然后是git push 命令。
【解决方案2】:

event-stream 3.3.6 有漏洞 https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident

您必须更改事件流最新版本

$ npm i event-stream --save

【讨论】:

    【解决方案3】:

    您需要做的只是简单地安装软件包以升级到最新补丁,这应该可以解决:

    1. npm uninstall
    
    2. npm install npm-run-all nodemon
    

    如果您有 package-lock.json 文件,也请删除它。

    确保在部署到 heroku 之前提交所有更改

    【讨论】:

      猜你喜欢
      • 2019-05-03
      • 2019-06-22
      • 2020-12-18
      • 2021-12-23
      • 2022-11-06
      • 2015-05-17
      • 1970-01-01
      • 2020-03-15
      • 1970-01-01
      相关资源
      最近更新 更多