Tag: 自动更新

节点:产卵的孩子,但自杀

有没有办法像npm start那样运行一个完全独立于主机的shell命令,这样就可以自杀了? 我试图用Node.js开发一个自我更新的应用程序。 我的计划是这样的: [Main]下载一个独立的更新应用程序(这也是一个Node.js应用程序) [Main]安装updater的依赖关系: npm install [Main]启动updater: npm start [主]杀死自己(主要应用程序): process.exit() [更新器]下载主应用程序的新版本 [更新程序]安装主应用程序的依赖关系: npm install [更新程序]使用以下命令重新启动主应用程序: npm start [更新]杀死自己(更新): process.exit() 完成。 我只知道child_process.exec()和child_process.spawn() ,但是当主应用程序使用process.exit() 这通常是一个坏主意,什么是更好的方法? 如果没有,那么在杀死主应用程序的时候,我怎么能让updater保持活着呢?

电子4 Windows – >电子build设者 – >自动更新:自定义解决scheme

我正在使用Electron构buildWindows应用程序。 为了打包和分发,我正在使用电子生成器 。 电子build设者依赖于许多包,而自动更新它使用松鼠窗 。 我一直在Windows上自动更新3天,最后我提出了一个似乎没有问题的工作解决scheme。 我不会去详细介绍我所尝试过的,并且失败了。 相反,我会在这里发布我提出的解决scheme。 我会和你们分享一下,看看你们是否可以向我指出任何会使我的系统失败的缺陷,或者如果这确实是一个可靠的解决scheme,那就帮助那些正在挣扎的人。 由于后一个原因,我发布了一些比所需要的更多的代码,希望能够帮助其他人。 逻辑如下: 如果当前可执行文件的path中的子文件夹fullupdate不存在(请参阅后面的说明),我们连接在线服务器并通过发送当前应用程序版本检查是否有更新; 如果没有更新,什么也不要做。 如果有更新,我们指示服务器返回一个包含url的jsonstring,我们可以从中下载electron-builder生成的.exe安装程序。 注意:不是.nupkg (服务器代码未提供:-) )。 我们下载文件并将其保存在我们的应用程序当前保存的本地文件夹中的子文件夹fullupdate中。 这应该是“安全”的,因为electron-builder将应用程序保存在当前用户文件夹AppData ,所以我们不应该有权限问题。 在下载结束时,我们在fullupdate文件夹内创build一个新的文件update ,以确保下载成功完成。 我们也可以重命名文件,但我更喜欢这种方式。 下次打开应用程序时: 如果文件夹fullupdate存在,我们检查文件update存在。 如果它不存在,下载没有完成,所以我们删除文件夹fullupdate ,再次调用远程服务器重新开始。 否则,如果文件update存在,我们启动我们下载的.exe文件,并返回true。 这将阻止应用程序打开主窗口。 很酷的事情是,更新程序将删除保存在AppData中的应用程序的旧版本(同时保留本地用户数据),并将其replace为新版本。 这样我们也将摆脱fullupdate文件夹。 现在代码: // we want to run this only on windows var handleStartupEvent = function() { if (process.platform !== 'win32') { return false; } ///////////////// […]

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

我想用Node.js创build一个应用程序,定期检查更新并安装它们(如果有的话)。 基本组件对我来说很清楚: 包含更新包的Web服务器(或FTP服务器,文件系统,…) 一个版本系统(如SemVer),这样你就可以知道哪个包是新的 用于签署更新包的公钥algorithm 那么,何时检查更新和安装更新可能会有不同的策略: 在应用程序启动 在应用程序结束 空闲时 应用程序甚至可能会closures并自动重新启动。 但还有一些问题: npm上是否有任何已经提供这样的系统的模块? 如何在文件系统中组织不同的版本? 基本上你会有一个主机和多个(版本化)的核心。 是否应该有一个data文件夹的所有人? 如何处理npm install &co。 为新下载的包? 如何处理破损的更新? 你怎么能实现这样的事情,以便它与Heroku公司兼容。 你没有永久的驱动器,你可以开车去? 一般来说:你将如何尝试实现这样的系统?

使用NodeJS来自我更新项目

我有一个主要运行在NodeJS上的项目。 在启动过程中,它会创build一个socket.io + http服务器和一些工作人员(主要是在特定事件上完成工作的事件监听器)。 现在我想实现一个工作进程,该进程会自动检查在同一台服务器上通过GitLab托pipe的git仓库中是否有新提交。 所以我想知道: 是否有一个npm模块,可以查找本地和远程git存储库匹配提交? 还是build议使用Redis的Pub / Sub和git钩子来通知应用程序这种方式的更新? 还是有一种完全不同的方法,你会build议? 目前这个项目是作为一个开发服务器运行,我可能会closures自动更新function,一旦它处于生产状态。 但是,因为我在我的笔记本电脑上开发,但在我的远程服务器上testing,自动更新将是方便的。