是否有任何独立的gui模块用于节点应用程序

时间:2014-09-17 18:36:29

标签: node.js user-interface

我想在nodejs中构建代码编辑器。有一个选项,比如使用快速服务器来显示编辑器和在后端执行代码。但这需要一个浏览器。所以我正在寻找可以为windows平台提供独立gui的节点模块。

6 个答案:

答案 0 :(得分:37)

我建议使用HTML / JS / CSS框架

选项#1: 电子 GitHub
Website | GitHub Repo | Releases

  

比你想象的容易

     

如果您可以构建网站,则可以构建桌面应用。电子是一个   使用Web技术创建本机应用程序的框架   JavaScript,HTML和CSS。它可以照顾到硬质部件   专注于您的应用程序的核心。

选项#2: NW.js (以前称为node-webkit)。
Website | GitHub Repo | Releases

  

直接从DOM / WebWorker调用所有Node.js模块并启用新模块   使用所有Web技术编写应用程序的方法。

Electron和NWJS专业人士:

  • AppJS已被正式弃用

  • Electron类似于NW.js但更新,更受欢迎,并且有更大的社区和更频繁更新。我推荐它。

  • NWJS总是使用最新版本的Chromium和Node,而Electron需要更多时间才能赶上。

  • NWJS通过将其编译为V8本机代码来支持[JavaScript Source Protection] [1]。电子没有。

  • NWJS拥有适用于Windows XP和Mac OS X 10.6支持的Legacy版本。

  • Electron和NWJS都使用MIT许可证。

您可以将electronNW.js

的贡献进行比较

电子和NWJS缺点:

  • 目前没有现成的解决方案运行时解决方案,因此您必须使用您的代码(约50MB压缩和+ 100MB未压缩)运送它或找到解决方法。
  • 取决于你的应用程序,Electron / NWJS可能会被认为是一种过度杀伤,特别是因为它的启动时间不够理想,只需考虑一些因素。
  • 没有原生外观,您必须使用CSS或使用某个框架创建自己的UI元素。

选项#3: DeskGap
Website | GitHub Repo | Releases

  

DeskGap是一个用于构建跨平台桌面应用程序的框架   网络技术(JavaScript,HTML和CSS)。

     

在保持缩小规模的同时启用本​​机功能,DeskGap   捆绑Node.js运行时并将HTML呈现留给   操作系统的webview。

  • 轻量级,因为webview由操作系统提供。

  • API仍然非常有限(几乎正在进行中)。

  • 需要新的操作系统版本。

答案 1 :(得分:28)

根据您的使用方式,有几种不同的选择。

选项1:

使用QT或GTK绑定之类的东西来制作更传统的GUI应用程序。这些选项通常只是对GTK和QT公开的C / C ++ API的节点绑定。请参阅node-qtnode-gui

选项2:

使用一个带有HTML,CSS和Javascript的框架,并将其捆绑到一个独立的HTML5应用程序中。有很多框架工作可以做到这一点。示例包括NW.jsAppJS以及其他许多内容。

答案 2 :(得分:3)

除了这里的其他答案:

您可以查看 NodeGUI https://github.com/nodegui/nodegui

  

NodeGUI是用于构建跨平台本机的JavaScript库   具有JavaScript和CSS等样式的桌面应用程序。它使用Qt   可以在Mac,Linux和Windows上使用。

它还有一个基于反应的渲染器,称为 React NodeGUI ,类似于React Native,但用于桌面:https://github.com/nodegui/react-nodegui

它也在积极发展中。

答案 3 :(得分:1)

针对您问题的答案可能是NodeGui(由Qt5,NodeGui-React支持)

还有许多其他选择。我在下面列出了一些选项,

  • 电子(允许您使用以下语言编写跨平台桌面应用程序: JavaScript,HTML和CSS(基于Node.js和Chromium)
  • carlo(需要在系统上安装Node和Google Chrome才能 运行)
  • NW.js(类似于电子,提供源代码保护)
  • DeskGap(捆绑Node.js运行时,并将HTML呈现留给 操作系统的网络视图)
  • Proton Native(在桌面上与React Native所做的相同 移动,基于https://github.com/parro-it/libui-node

有关更多信息,您可以使用我的github repo electron-alternatives选择跨平台的桌面开发选项。

答案 4 :(得分:0)

最近Node-gir也值得一看:https://github.com/Place1/node-gir

允许使用Nodejs中基于Gnome / Glib / Gobject的库。允许你使用GTK +。

答案 5 :(得分:0)

我最近发现了https://github.com/yue/yue,并且有很好的经验。它轻巧,具有下降打包支持(甚至支持React / JSX),并且真正具有原生的Webview,可移植且易于构建目标平台。

尽管似乎已停产,但我发现该项目非常独特,但它确实具有添加下降Web视图的选项。我重新获得了一些PR,并将其分叉,并添加了TypeScript类型和文档,因为它确实是干净/直接的API,易于构建目标平台文件。尽管我希望/寻找其他用户添加缺少的部分:https://github.com/cancerberoSgx/node-gui,但这是我的叉子。缺点是它实现了node.js事件循环,因此必须使用yode(node.js分支)才能使promise和异步代码与GUI代码一起正常工作。

我想知道其他人是否有使用此库或fork的经验。