在这里贴一下nw的官网首页和下载截图) image image Github上nw.js有两万多Star和接近3000的Fork,说明它已经相当成熟。...nw.js就是使HTML, CSS, JavaScript写的原本在浏览器上运行的程序,也可以在桌面端运行。...Nw与Electron的对比 nw.js无论从表面还是本质都更接近 Node.js,nw.js直接继承和使用了node.js的启动、开发、运行方式,对node.js的修改最小,而 electron...nw.js是和node.js一样是单进程的,electron改成了双进程,技术实现改变。 electron的优点:开源的核心扩展比较容易,界面定制性强,原则上只要是Web能做的他都能做。...从license上来看,Electron是Github的,NW.js则是Intel。 nw 在mac上只能构建mac的应用 ,windows下只能构建windows的。
Electron 的 通信机制我们知道 Electron 是基于 Chromium + Node.js 的架构。...Electron 与 NW.js说到 Node.js 的桌面应用,基本上大家都会知道 Electron 和 NW.js。...例如 VsCode 就是基于 Electron 写的,而小程序开发工具则是基于 NW.js 来开发的。...那么,Electron 和 NW.js 都分别是怎样管理 Node.js 和 Chromium 的呢?NW.js 内部架构NW.js 是最早的 Node.js 桌面应用框架,架构如图1。...这里借用里面的一张图:参考vscode 定制开发 —— Workbench 源码解读及实战前言vscode 定制开发 —— 基础准备【译】探索NW.js和Electron的内部vscode-通信机制设计解读
如今跨端跨平台的优秀技术方案也比较多:1)移动端:React Native,Flutter,Weex;2)小程序端:Taro,Uniapp;3)桌面端:NW.js,Electron,Flutter for...比如:1)NW.js;2)Electron;3)Flutter for Desktop;4)Tauri;5)Wails;4.2NW.jsNW.js 官网描述:NW.js概况:1)官网:https://nwjs.io...类似于 NW.js,表面上,它们似乎非常相似,但是这两个项目有本质上的区别,使得 Electron 和 NW.js 成为两个完全独立的产品。...比如:1)应用入口不同:NW.js 主入口是一个 HTML,Electron 中是 JavaScript,可操作性更强;2)Node 集成方式不同:在 NW.js 中网页中的 Node 需要通过给 Chromium...PS:关于Electron的版本列新实践可以看看《vivo的Electron技术栈选型、全方位实践总结》。10、本文小结NW.js 的时代已经过去,考虑 NW.js 的可以优先 Electron。
Windows, macOS, Linux 中等 HTML, CSS, JavaScript 社区支持 一般 中等 NW.js社区 中等 较大 较大 高 性能相对其他框架较低,内存占用高 中等 NW.js...electron Electron 是由 GitHub 开发的跨平台桌面应用框架,它使用 HTML、CSS 和 JavaScript 技术栈,并基于 Chromium 和 Node.js。...nw.js NW.js(以前称为Node-Webkit)是一个基于Chromium和Node.js的框架,用于构建跨平台的桌面应用程序。...NW.js具有以下特点: 跨平台支持:NW.js可以在多个操作系统上运行,使开发者能够使用相同的代码库构建跨平台的桌面应用程序。...然而,NW.js也存在一些挑战,包括: 性能相对其他框架较低:由于NW.js同时运行Chromium和Node.js,可能导致一些性能方面的挑战,例如初始启动时间较长和内存占用较高。
Electron vs. NW.js Electron与另一个名为NW.js(以前称为node-webkit)的项目类似。这两者有很多共同之处。...事实上,在开始研究电子之前,zcbenz(Electron项目发起者)是NW.js的重要贡献者。也就是说,它们在几个重要的方面是不同的,如表1.1所示。 ...表1.1 Electron和NW.js之间的主要区别的比较 Electron NW.js 平台 支持官方最新的Chromium版本 Chromium分支版本 进程模型 分离进程模型 共享Node进程...对于多媒体应用,Electron通常是更好的选择,因为Chromium的FFmpeg库是一个静态链接的依赖项,Electron支持更多开箱即用的依赖,用NW.js,您需要手动链接FFmpeg依赖项。...Electron与NW.js的不同之处在于,它使用的是Chromium官方支持的内容模块。而NW,使用定制的Chromium。
在这之前,Zhao主要进行node-webkit(现在叫nw.js)的开发工作。...从概念上,Electron与nw.js很相似,但是他们有很重要的区别:一个主要的不同点是Electron 通过 Googles Chromium Content Module 来使用 Chromium...的功能,nw.js 则直接使用了 Chromium本身。...,这个框架作者还为一本中文译名叫《跨平台桌面应用开发:基于Electron与NW.js》的书写了序(见下图)。...这些综合起来回答这个小节的问题就是,用 Electron 开发客户端,用户体验好,开发麻烦小,功能更强大,老板脱发少。 4)那在 Electron 和 NW.js 之间,为啥选择前者?
说到 node.js 的 GUI 开发方案,首先想到的就是 electron 和 nw.js。但除了它们之外,是否存在其它更轻量级的技术方案可供选择呢?...在这个基础上,再加上个方便操作的 GUI 就好了,于是首先想到的方案自然就是 electron 或者 nw.js。...但打包了 Chromium 内核和 node.js 环境后,如今的 electron 和 nw.js 动不动就上百MB的大小,用来开发这样的小工具实在是不划算。...而且在自己另一台破电脑上,electron 启动时间动不动就是十几秒,操作响应也不是很灵敏,达不到小而快的目标效果。 除了它们之外,是否还有其它的 node.js GUI 开发方案呢?...看起来具体实现基本就是把 react-native、electron 等方案整个打包,再增加了对 Win10 的 UWP 支持,是个大而全而非小而轻的方案?
Electron是Github伴随着Atom项目推出的开源跨平台桌面程序的开发工具,在Electron中可以使用纯JavaScript来调用丰富的原生APIs,Electron基于Node和Chromium...实际上,Electron并不是唯一一个以Web前端语言开发桌面程序的框架,在此之前就已经有NW.js,它和Electron相似,都是利用web前端语言开发桌面程序,并且具有非常好的跨平台性,但是现在Electron...的使用热度已经远远地超过了NW.js,呈现后来者居上的态势.许多著名的项目都是由Electron开发完成,比如Microsoft官方发布的VSCode以及Github官方推出的Atom编辑器等都是基于Electron...如下便是使用Electron开发的人工智能课程产生式实验的软件界面....Electron Github Repository: https://github.com/electron Thank You 如果您发现文章中有错误或表述不严谨的地方,请发邮件到以下邮箱。
它内部封了一个浏览器核心,但对这个浏览器核心做了大量的精简,不像Electron和NW.js动辄上百兆的体积,它只要6M左右就够了。...用的人越来越少,维护的投入也不如Electron大,再加上Chromium更新非常频繁,导致NW.js的有些API也不是很稳,恶性循环加剧。...Electron https://www.electronjs.org/ Electron的作者曾经在NW.js团队工作过(NW.js项目贡献第二多的人就是Electron的作者), 后来辗转到了github...Electron每创建一个窗口都会多一个进程,这使Electron创建窗口的效率不高(秒级), NW.js有复用进程的机制,即使新窗口加载完全不同域的页面也不会创建新的进程(毫秒级)。...这也是为什么很多基于Electron开发的应用都使用Dom模拟弹窗的原因。 无论是浏览器相关的API,还是系统级API,Electron提供的都比NW.js多。
昨日(2016.09.13)本文发表后,获得了一定的阅读和转发量,但经部分网友反馈和仔细审核后发现,在与 NW.js 对比的环节,言辞欠妥,且数据的真实性有待考究,特此将争议部分删除,同时借此诚挚地向...NW.js 的作者以及各位读者反馈表示感谢,期待更多深入的交流和分享,修订后的版本如下: Stack Overflow 联合创始人 Jeff Wood 曾说过,任何一个能用 JavaScript 编写的应用系统...其他 当然 Electron 中还有许多实用的模块,如作为桌面应用必不可少的 Menu 和 Tray 模块、拥有调用当前操作系统功能的 Shell 模块、NW.js 中不具备的自动更新功能 - autoUpdater...打包构建 Electron 打包的方式有很多种,常见的有 electron-builder、electron-packager 和 asar几种,在这里我使用的是 electron-packager 作为应用的打包工具...参考资料: Electron 官方文档 http://electron.atom.io/ 从 node-webkit 到 Electron 1.0 http://cheng.guru/blog/2016
写在开头 由于最新的Electron已经支持了M1芯片,arm架构下的Mac 在开发桌面软件时候不可避免的需要打包自测,那么在M1芯片上的Mac打包适配自己的软件也是应该的 那么现在制作Electron...,其实大部分软件升级适配成本不高,桌面软件开发者们赶紧升级吧 背景 Electron不支持xp系统,只要node.js升级后基本上它就会发布升级版本(如果你要兼容xp系统请使用nw.js等) 目前node.js...最新版本15.x已经适配了arm架构下的Mac,electron11.0.0版本也已经支持在arm架构下的Mac运行了,我需要在自己电脑上自测自己开发的软件兼容性,所以这次需要升级Electron版本和各种插件等...开始 首先升级Electron到11.0.0版本 yarn add electron@11.0.0 --save 升级electron-builder到22.9.1版本以上 yarn add electron-builder...反正各种奇奇怪怪的错误,后面我发现是我配置有点问题,最终在这里找到了 https://github.com/electron-userland/electron-builder/issues/5392
桌面 GUI 应用也不例外,近几年两个重量级框架 NW.js和 Electron横空出世,给前端开发人员打开了这个领域的大门。...这两个框架都与中国人有极深的渊源,2011 年左右,中国英特尔开源技术中心的王文睿(Roger Wang)希望能用 Node.js 来操作 WebKit,而创建了 node-webkit 项目,这就是 NW.js...Electron 的价值 Electron 和 NW.js 框架都是基于 Chromium 和 Node.js 实现的,这就使得前端程序员可以使用 JavaScript、HTML 和 CSS 知识轻松构建跨平台的桌面应用...Node.js 集成在 Electron 内部 通过消息轮训机制打通 Node.js 和 Chromium 的消息循环 通过 Electron 的内置模块向开发者提供桌面应用开发必备的 API Electron...总结 通过本章内容的讲解,我带领大家学习了 Electron 框架的由来、Electron 框架的价值、Electron 框架的基本原理以及 Electron 框架有哪些不足。
桌面开发 -- NW.js与Electron 如我前面所讲,只要在有原生开发的地方,就会有跨平台开发的技术出现。 同样的现象也出现在桌面开发。...因此,跨平台桌面开发技术--NW.js与Electron就出现了。 这一次,前端技术向桌面开发发起了进攻的号角。...React Native的现状用一句话来形容就是:前行艰难,后有追兵 NW.js 与 Electron -- 性价比高的解决方案 NW.js与Electron相对而言,处境就好很多了。...image-20210605101612084 我在20年做的PCX,就是基于Electron的解决方案,我甚至为它编译了一些国产Linux系统的版本,特别是龙芯CPU上的一个版本,令我印象深刻。
nw.js如何处理拖放操作 其实拖放(drag-drop)操作是Html5的功能,不是nw.js的内置API,那么我们采用Html5应用一般的处理方法就可以了。...nw.js会按照chrome浏览器默认处理文件的方式来处理拖放的文件,能显示的会直接显示,不能显示的会变成资源下载。 这肯定不是桌面应用想要的效果,那么Html5是如何处理拖放的呢?
导语:近几年,随着 Electron/ NW.js 等技术的兴起,也催生了一批优秀的桌面端开发者工具,比如 VSCode、微信开发者工具、飞冰(ICE) 等等。...因此,最近准备系统性的深入学习下 Electron 技术并且将学习的知识进行适当沉淀。本篇文章主要总结 Electron 的自定义菜单。...这里以微信开发者工具为例(微信开发者工具基于 NW.js 进行开发,主要出于 Windows XP兼容性考虑),来分别介绍这几种菜单的含义。...这里需要注意,应用菜单只能在 Electron 的主进程中进行访问。...后面的文章会涉及到对话框、 IPC 通信、Electron 应用的测试、打包、发布和自动更新等内容。
最近用到了electron, 顺便归纳一下,站在巨人的肩膀上。...(NW.js)、PyQT跨平台:Swing(JAVA)、PyQT(Python、C++)、Electron(前端)Electron相对于其他的来说,算是对前端来说非常友好的了,还阔以结合Vue来搞。...npm install electron --save-dev在初始化并且安装完 Electron 之后,文件夹中会出现一个 node_modules 文件夹,其中包含了 Electron 可执行文件;...启动命令写 "start": "nodemon --watch index.js --exec electron ." ,这个命令会告诉 Electron 在当前目录下寻找主脚本,并以开发模式运行它。...在根目录的 main.js 文件中写一行代码:main.jsconsole.log(`欢迎来到 Electron `)因为 Electron 的主进程是一个 Node.js 运行时,可以使用 electron
执行electron:build会出现这个问题 是因为打包时会检测cache中是否有electron 包,如果没有的话会从github上拉去, 国内网络环境中拉取的过程大概率会失败 解决 在项目根目录新增....npmrc文件 写入 ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/ 重新打包就没问题
,命令如下: cnpm install -g electron 5、输入命令: electron -v 查看electron版本,若出现版本号,表示安装成功; 6、输入命令: cnpm install...-g electron-packager 打包输出工具; 7、下载并安装electron客户端; 8、新建一个项目文件夹,自命名,例如:test1; 9、在 test1 中创建:pakage.json...、index.html、main.js 三个文件; 10、通过拖拽 test1 文件夹到 electron客户端,或者在cmd控制台中使用命令打开文件, F:\electron1\electron.exe... main.js: const electron = require('electron'); // Module to control application life....const { app} = electron; // Module to create native browser window. const { BrowserWindow} = electron
Electron .npmrc 安装electron依赖经常会不成功 在项目目录下创建.npmrc文件,设置镜像地址 npm config set strict-ssl false registry...=https://registry.npmmirror.com electron-mirror=https://registry.npmmirror.com/mirrors/electron/ 热更新/...热加载 方案一 安装:npm install electron-reloader --save-dev 在主进程 js 文件 try { require("electron-reloader")(module...再次运行npm run start,仅当index.js内容变化时,就会自动重新执行electron .来重启应用 菜单栏与边框 app.on("ready", () => { mainWindow...在 Electron 中,借助 Tray 模块实现。 //app 模块,控制整个应用程序的事件生命周期。 //BrowserWindow 模块,它创建和管理程序的窗口。