如何创建自我更新的Node.js应用程序?

Gol*_*den 8 versioning auto-update self-updating node.js

我想创建一个Node.js应用程序,它定期检查更新并安装它们(如果有的话).

基本组件对我来说很清楚:

  • 包含更新包的Web服务器(或FTP服务器,文件系统......)
  • 版本系统(例如SemVer),以便您可以分辨哪个包更新
  • 用于签署更新包的公钥算法

然后,可能有不同的策略来检查更新和安装更新:

  • 在申请开始
  • 在申请结束时
  • 闲着时

应用程序甚至可以很难关闭并自动重启.

但是还有一些问题:

  • 是否有可用的npm模块已经提供了这样的系统?
  • 如何在文件系统中组织不同的版本?基本上你有一个主机和多个(版本化)核心.它们应该有一个data文件夹吗?
  • 如何应对npm install&co.对于新下载的包?
  • 如何处理破碎的更新?
  • 你怎么能实现这样的东西,以便它与Heroku&co兼容.你没有永久驱动器,你可以开车到哪里?

一般来说:你会如何尝试实现这样的系统?

小智 4

首先,您可以使用 NPM 本身进行包和应用程序交付。其次,您可以添加一个脚本文件来在 package.json 文件中添加一个 cron 作业(例如“postinstall”或“update”)以进行定期更新过程。在此脚本中,您可以检查所需的所有内容,例如损坏的更新。在 Heroku 中,您可以使用 Scheduler Worker 进行更新处理。