nw.js:使用 HTML 和 JavaScript 来制作桌面应用

NW.js是一款基于Node.js和Chromium的桌面应用开发框架,允许开发者直接用HTML/CSS/JS构建跨平台桌面应用。
clickgpt_line.png_noView
介绍

NW.js:用Web技术构建桌面应用的新方式

你是不是有时候也在想:为什么写前端就只能做网页?为啥不能直接用HTML、CSS和JavaScript写出一个能装在桌面上、还能访问本地文件的应用程序?我当时也有过这个想法,然后就发现了——NW.js,它直接把这个梦想实现了。

NW.js原名叫node-webkit,它的最大特点就是能把Node.js和浏览器DOM环境融合在一起。也就是说,在一个桌面窗口里,你既能写前端页面(像普通网页那样),又能像Node.js一样去读写文件、调用系统API,甚至还能运行shell命令。是不是听起来就很爽?

用Web技术写桌面应用,真就这么简单?

是的,真的这么简单。NW.js 本质上就是把Chromium和Node.js打包到一起,让它们在同一个上下文中运行。所以你可以在HTML里写 <script>,然后直接调用 fs.readFileSync() 这样的Node模块来读文件,完全不需要像以前那样去调各种插件或API桥接。

举个例子,你可以像写一个普通网站那样写个HTML页面:

    
html
<!DOCTYPE html>
<html>
  <body>
    <h1>Hello NW.js</h1>
    <script>
      const fs = require('fs');
      const content = fs.readFileSync('example.txt', 'utf-8');
      document.body.innerHTML += '<pre>' + content + '</pre>';
    </script>
  </body>
</html>

上面这段代码会在一个窗口里显示example.txt的内容,完全就是网页+Node.js融合的效果,第一次跑起来我直接惊呆了。

跨平台打包,开发一个项目,Windows/Linux/macOS全都能跑

NW.js最大的好处之一,就是它完全跨平台。你开发一个项目,只要打包成对应平台的可执行文件(比如 .exe.app),就能在Windows、macOS、Linux上运行,界面和功能保持一致。

更好的是,它的打包方式也很简单,你只需要写一个 package.json 配置文件,把你的前端页面和脚本文件一起打包到一个压缩包里,加上NW.js的运行时,就能直接生成桌面应用。

我之前做了一个小型的Markdown编辑器,用NW.js打了一包,在公司Windows上跑得飞快,带回家Mac电脑上一样用,体验还蛮统一的。

拥抱完整Node.js生态,功能扩展超方便

NW.js最强的一点,其实还是它能完整访问Node.js的生态系统。你可以使用任何Node模块,包括 fs, child_process, path,甚至 expresssqlite3axios 等第三方库也没问题。

这就意味着,你可以在前端界面中通过按钮控制硬件、调用数据库、执行系统命令,甚至搭一个本地服务器和前端联动也完全没问题。

比如你可以做这样的应用:

  • 本地笔记工具(用 fs 保存md文件)
  • 下载器(用 axios 拉资源)
  • PDF批量处理工具(用 pdf-lib
  • 甚至可以做个自动化脚本工具界面化展示(结合 child_process

说白了,你以前需要用Electron、C++或者Qt才能做的,现在用NW.js加个前端框架就能轻松搞定了。

和Electron相比,NW.js有什么不同?

大家很容易拿NW.js和Electron对比,因为它们目标很像:都是用Web技术做桌面App。

但两者在架构上有一个很大的不同:

  • Electron 是前端代码在一个“渲染进程”里跑,Node.js代码在“主进程”里,你要通过IPC通信来互调;
  • NW.js 是直接把DOM和Node代码放在一个进程里跑,互不分离,写起来更直觉简单。

如果你是一个刚入门的前端开发者,想快速实现一个桌面应用demo,我更推荐从NW.js开始,逻辑会清晰很多。

当然啦,如果你需要处理非常复杂的多窗口、后台进程、沙箱安全等问题,那Electron可能更灵活一点,具体选谁就看你的项目需求了。

我的感觉是

我自己第一次接触NW.js是在做一个公司内网小工具的时候,需要一个可以上传文件并处理数据的应用,纯网页做不了,Electron太重手,结果NW.js刚好完美解决。

它不需要你去学新东西,只要你有一点Node.js和前端基础,就能迅速上手。而且打包部署也非常轻便,代码逻辑清晰,界面也好定制,真的是Web开发者做桌面应用的首选利器之一。

所以啊,如果你是前端工程师,正在考虑怎么跨出Web世界,搞点桌面项目出来,真的可以去试试NW.js,说不定你下一款全平台桌面工具就此诞生了。

RPA
八爪鱼RPA
支持一键抓取公众号/小红书/抖音/淘宝数据
立即查看
流程自动化
付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
付费
网盘拉新实战教程
每周花费一小时,手把手教你赚网盘平台佣金
立即查看
500人学过
限时优惠
AiPPT
结合最新AI技术,为用户提供一键生成高质量PPT的解决方案。
立即查看
一键生成 PPT
免费
豆包MarsCode
一款免费的AI编程助手,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,免部署、更准确、更强大!
立即查看
AI编程助手
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
编程学习
免费领取编程学习资料