各人好,很快乐又碰头了,我是"高级前端‬进阶‬",由我带着各人一路存眷前端前沿、深切前端底层手艺,各人一路前进,也欢送各人存眷、点赞、保藏、转发!

NeutralinoJS 成为 Electron 和 Tauri 的下一个劲敌?  第1张

高级前端‬进阶

媒介

几年前,Web 开发人员进入桌面应用法式范畴的独一路子是 Electron 或 NW.js。但是那两者有比力大的问题:比力重、内存占用大,但处理计划对许多人来说很有吸引力。 Microsoft、Slack、Discord 等大公司对其停止了投资,但仍有许多人不想安拆 9 个差别版本的 Chromium 来运行 9 个差别的应用法式。

NeutralinoJS的解法比力特殊,与其将整个 Node + Chromium 与每个应用法式打包在一路,为什么不重用每个操做系统附带的已经安拆的阅读器? Linux 和 macOS 有 WebKit,而 Microsoft Windows 有 IE、Edge 和如今的 Chromium。 理论上那是一个绝妙的设法,但诸如对系统托盘、通知、文件系统拜候、数据存储和平安性的本机撑持等复杂性让许多人踌躇能否要将其付诸理论。

1.NeutralinoJS是什么?

Neutralinojs 是一个轻量级、可移植的桌面应用法式开发框架。 它允许您利用 JavaScript、HTML 和 CSS 开发轻量级的跨平台桌面应用法式。 同时,能够利用任何编程语言(通过扩展 IPC)扩展 Neutralinojs,并将 Neutralinojs 用做任何源文件的一部门(通过子历程 IPC)。

NeutralinoJS 成为 Electron 和 Tauri 的下一个劲敌?  第2张

NeutralinoJS 由斯里兰卡法式员 Shalitha Suranga 于 2018 年发布,是首批撑持 3 种差别桌面平台同时让 Web 开发人员十分容易利用的框架之一。 3 年后,NeutralinoJS 有本身的 Javascript 客户端库、对扩展的撑持以及十分小的占用空间(< 3 MB)。

NeutralinoJS是Electron 和 Tauri 的下一个更佳替代品 !

与Tauri 需要安拆 Rust 和一大堆其他工具比拟,NeutralinoJS 是站在巨人的肩膀上。 它不需要进修一门新语言来操纵当地功用。 它固然缺乏庞大的 npm 生态系统,但撑持 Neutralino 定名空间下的各类系统 API。好比:

Neutralino.initNeutralino.appNeutralino.computerNeutralino.debugNeutralino.filesystemNeutralino.osNeutralino.storageNeutralino.windowNeutralino.eventsNeutralino.extensionsNeutralino.updater2.为何说Neutralinojs有实力成为Electron的替代品?

在 Electron 和 NWjs 中,必需安拆 Node.js 和数百个依赖库。 嵌入式 Chromium 和 Node.js 使简单的应用法式变得痴肥。在大大都情况下,框架比您的应用法式源代码更重。 Neutralinojs 供给了一个轻量级和可移植的 SDK,它是 Electron 和 NW.js 的替代品。

NeutralinoJS 成为 Electron 和 Tauri 的下一个劲敌?  第3张

Neutralinojs 不打包 Chromium,而是利用操做系统中现有的 Web 阅读器库(例如:Linux 上的 gtk-webkit2)。 Neutralinojs 为本机操做施行平安的 WebSocket 毗连,并嵌入静态 Web 办事器来供给 Web 内容。 此外,它还为开发人员供给了一个内置的 JavaScript 客户端库。

若是能够构建网站,那么就能够构建跨平台桌面应用法式,因为 Neutralinojs 是一个利用 JavaScript、HTML 和 CSS 等 Web 手艺创建本机桌面应用法式的框架。 您能够利用您最喜好的前端框架(Angular、React、Svelte、Vue 等)来构建您的下一个 Neutralinojs 应用法式。

3.NeutralinoJS有什么特点?3.1 Native API

Neutralinojs Javascript API 公开了对操做系统级功用的拜候,例如文件操做、施行号令、显示本机对话框等。

3.2 便携和零依赖

运行 Neutralinojs 应用法式不需要额外的依赖项。更大的益处就是能够在一个平台上做所有平台的应用。不需要编译器!

3.3 跨平台撑持

Neutralinojs 应用法式能够在 Linux、Windows、macOS、Web 和 Chrome 上运行。能够为所有支流的操做系统和收集阅读器发布单个便携式应用法式。

3.4 轻盈快速

一个简单的未压缩的 Neutralinojs 应用法式只要 ~2MB,而压缩后的应用法式大小约为 0.5MB。 事实上,它不会像任何其他基于 Chromium 的跨平台应用法式开发框架那样消耗物理内存或存储空间。

3.5 简单灵敏

Neutralinojs 团队倾向于为法式员供给简单灵敏的开发接口。 该框架具有简单的便携式主动更新法式和 CLI。 不消四处利用基于 OOP 的类和耗时的设置来使您的工做复杂化。

3.6 任何后端,任何前端

您能够利用任何具有您喜好的功用(如 HMR)的前端框架来构建 Neutralinojs 应用法式。 此外,您能够将 Neutralinojs 用做任何带有子历程 IPC 的源文件的一部门,或者利用带有 IPC 扩展名的任何后端语言扩展 Neutralinojs API。

4.Electron vs Neutralionjs

Neutralionjs 与 Electron 的 API 兼容性为 0。 固然Neutralionjs比electron更快,并且内存占用更低,但是不撑持Node,没有 npm 生态系统,也没有庞大的社区撑持。 将 Electron 应用法式迁徙到 Neutralino 的更佳选择是将后端代码重写为当地编译语言,如 Go 或 Rust,或者将整个 NodeJS 打包为二进造文件。

目前总体来看,与Neutralionjs 比拟,Electron 更好更可靠!

NeutralinoJS 成为 Electron 和 Tauri 的下一个劲敌?  第4张

5.起头第一个NeutralinoJS项目?5.1 NeutralinoJS安拆npm install -g @neutralinojs/neu

此时就能够全局利用 neu 号令。

5.2 Hello Neutralino

能够通过下面的号令初始化一个项目:

neu create <PRoject-name>

在应用的代码库中运行上述号令会创建一个具有不异名称的目次。 之后要做的就是编纂 neutralino.config.json 文件。 能够通过编纂 2 个键:url 和 documentRoot 以将它们指向框架的构建目次。 关于 React,它是:

"documentRoot": "./build/","url": "/index.html",

能够通过如下号令开启调试:

neu run

此时应用法式应该在本机窗口中翻开。

NeutralinoJS 成为 Electron 和 Tauri 的下一个劲敌?  第5张

总之,相关于 Tauri,NeutralinoJS 十分易于设置和利用。当然,它几乎没有内置 Tauri 的所有功用,但您能够通过本机扩展轻松添加那些功用。

6.总结

本文次要和各人切磋下NeutralinoJS 能否会成为 Electron 和 Tauri 的下一个强敌?因为笔者也没有在消费项目中利用、摆设过NeutralinoJS,所有良多摸索也就浅尝辄行,但是文末的参考材料供给了大量优良文档以供进修,若是有兴趣能够自行阅读。

参考材料

https://dev.to/byteslash/what-is-neutralinojs-alternative-to-electron-5fjc

https://blog.notesnook.com/neutralinojs-next-best-alternative-to-electron-and-tauri/

https://neutralino.js.org/

https://github.com/neutralinojs/neutralinojs