You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Windows平台的nw.js应用实现自动更新?现有工具均已停更

NW.js Windows应用自动更新方案选择指南

一、现有停更工具评价

  • nwjs-builder-phoenix:2020年归档,是这几个工具里停更最晚的,功能相对完整,覆盖打包+更新全流程,代码结构规范。仅针对Windows平台使用的话,它的核心更新逻辑(版本对比、安装包下载、文件替换)在Windows环境下兼容性尚可,但后续NW.js版本迭代可能会出现API适配问题,小版本更新基本能正常运行。
  • nw-autoupdater:2020年弃用,专注于更新模块,逻辑轻量,针对NW.js的进程管理做了适配,Windows下的静默更新流程处理到位。但因停更,新NW.js的沙箱等安全机制可能会导致它出现权限不足的问题。
  • nwjs-autoupdater:2019年起未维护,更新逻辑依赖旧版NW.js的App API,和新版本NW.js的API差异较大,现在使用可能会出现版本检测失败、下载后无法替换文件的问题,不优先推荐。
  • node-webkit-updater:2014年弃用,年代过于久远,完全适配不了当前NW.js版本和Windows 10/11的文件权限、UAC机制,直接排除。

二、替代方案

1. 手动实现轻量更新逻辑

针对Windows平台,可自行编写一套简单的更新流程,核心步骤如下:

  • 版本检测:在服务器存放version.json,包含最新版本号和安装包下载地址
  • 版本对比:应用启动时读取本地package.json的版本号,与服务器版本对比
  • 下载安装包:用Node.js的http/https模块或axios将安装包下载到临时目录
  • 静默更新:通过Windows批处理脚本或Node.js的child_process调用exe安装包,或关闭当前应用进程后替换NW.js应用文件

示例伪代码:

const fs = require('fs');
const https = require('https');
const { exec } = require('child_process');
const localVersion = require('./package.json').version;

// 检测最新版本
https.get('https://your-server.com/version.json', (res) => {
  let data = '';
  res.on('data', (chunk) => data += chunk);
  res.on('end', () => {
    const { version: latestVersion, downloadUrl } = JSON.parse(data);
    if (latestVersion > localVersion) {
      // 下载安装包到临时目录
      const tempFile = fs.createWriteStream('./temp/update.exe');
      https.get(downloadUrl, (res) => {
        res.pipe(tempFile);
        tempFile.on('finish', () => {
          tempFile.close();
          // 启动安装包并关闭当前应用
          exec('start ./temp/update.exe && taskkill /F /IM your-app.exe');
        });
      });
    }
  });
});

2. 参考Electron更新工具适配

NW.js和Electron同基于Node.js与Chromium,更新核心流程(版本检测、下载、文件替换)逻辑相通。可以参考electron-updater的实现逻辑,手动移植核心部分到NW.js,只需适配NW.js的进程退出、文件路径获取等API即可。

3. 结合第三方打包工具扩展

使用nw-builder(活跃度优于你列出的几个工具)完成Windows应用打包,同时利用它提供的基础版本检测钩子,扩展实现自定义更新逻辑。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:12:55