APP下载

值得考虑的JavaScript项目

2023-05-14王贺利

计算机与网络 2023年6期
关键词:堆栈开发人员桌面

王贺利

Tauri:面向桌面应用程序的JavaScript框架

Tauri是一种用于构建桌面应用程序的JavaScript框架,也许称之为“元框架”更恰当。它允许使用任何前端Web框架(比如React或Svelte),并将其转换成跨平台的富客户端。

Tauri联合创始人Denjell透露了开发一种新桌面框架的动机:Tauri旨在简化构建应用程序的过程。因此如果有人对构建应用程序感兴趣,可能会接触到Tauri。Tauri为Mac、Windows和Linux构建应用程序,2023年夏天,将发布2.0稳定版,新增支持iOS和安卓的功能。

Tauri的開发过程非常有意思。该框架可以让您用当前使用的现有管道来构建,比如用Vite构建的SvelteKit。Tauri可以处理最终针对JavaScript和HTML构建的任何堆栈,它在开发服务器上运行,为用户生成原生桌面客户端。

虽然Tauri的代码面向系统,并且用Rust构建,但开发人员与几乎都是用JavaScript编写的API进行交互。Tauri是一种引人注目的方法,为广大的JavaScript开发人员构建原生桌面应用程序。Tauri旨在兑现使用JavaScript进行多平台开发的承诺,不像旧框架试图取得类似的壮举,却最终未能实现。

tRPC:用TypeScript从事API开发

tRPC是一种构建API的方法,得到TypeScript的支持。虽然tRPC与GraphQL属于同一个技术家族,但不同之处在于它使前端代码和后端代码之间的交互实现自动化。它还具有来自TypeScript强制执行类型这种能力的超级功能。

tRPC的超级功能在于使用现有的技术跨整个堆栈支持各种类型的执行和关联。它提供了一种双向类型推断,并且无需元数据中介或额外的构建步骤将API定义绑定到消费代码。总的来说,tRPC是构建全栈TypeScript应用程序的一种独特而诱人的方法。它引起了开发者社区越来越大的兴趣。

Bun.js:一种面向JavaScript的更快运行时环境

Bun.js是JavaScript领域一颗冉冉升起的新星,因为它可在一个软件包中处理多个方面。询问框架的创建者Jarred Sumner关于其创建Bun的动机和希望:Bun集JavaScript/ TypeScript打包器、编译器、NPM软件包管理器和JavaScript运行时环境于一体。目标是让JavaScript运行起来更快速、编写起来更简单。实现这个目标的一个重要部分是生态系统兼容性。Bun旨在成为Node.js的简易替代者。人们不应该为了使用Bun而重写代码。许多Node.js API被做入到Bun中(不过这方面仍在努力),比如Node的原生模块API(NAPI):fs、path和process等。

Bun既是Node.js和Deno等运行时环境的简易替代者,也是webpack、Vite和Babel等辅助工具的替代者。它以惊人的速度运行Bun install(以替代NPM install或yarn install)而迅速成名。Bun的性能优势来自于将大量代码从JavaScript中移到较低级的Zig和C++中。

Bun的快速处理以及一体化方法使其成为一种引人注目的方案,可以替代面向后端服务器端JavaScript的传统堆栈。

Civet:面向TypeScript的现代框架

如果把TypeScript和CoffeeScript中的一些想法结合起来,再加入一些额外的优点,会得到什么?会得到像Civet这样的框架,这个框架旨在使编写的TypeScript代码更简单、更强大。Civet的创建者Daniel Moore特别指出:“坊间盛传Civet是新的CoffeeScript,不过也许这是好事。CoffeeScript为官方JavaScript规范带来了类、解构、async/await、箭头函数和rest参数等要素。”

值得关注的是,Civet并不局限于改进TypeScript,它还使用JSX。正如负责大部分JSX改进之处的项目开发人员Erik Demaine指出:“Civet进一步完善了这些想法,添加了更迫切需要的语言特性(比如管道操作符、许多JSX改进之处以及很快推出的模式匹配switch),并在TypeScript的基础上构建(面向TypeScript编译),因此它与现有工具极其兼容。”

Tabby:面向Node.js的终端

Tabby是一个功能齐全、跨平台的窗口终端,取代诸如CMD、PowerShell和Terminal之类的原生应用程序。它还可以像Putty那样处理SSH、像WinSCP那样处理SFTP。

询问Tabby的创建者Eugeny关于为何决定创建一个新的终端应用程序,得到的答案是:“起初创建Tabby是由于使用Hyper(另一个基于Electron的Terminal应用程序)颇为艰难,以及对其他应用程序停留在90年代普遍感到失望。另一个灵感来源是VS Code这个应用程序以“更好的整体体验”之名抛弃了约定。我希望发展壮大社区,最终重写Tabby以便使用Tauri而不是Electron,以缩减应用程序代码量并提高性能。”Tabby可在跨环境保持一致的平台中为您提供了颜色、特殊键处理和复制/粘贴等方面所有好的细节。

Pixi.js:JavaScript中的性能密集型图形

访问Pixijs.com,观察将指针移到背景图像上的效果,有一种看起来很耗费计算资源的流体效果,但它似乎对性能没有巨大影响。他们是怎么做到的?当然是使用Pixi.js库。

Pixi为您提供了一套注重性能的高级API,用于使用WebGL和HTML5 Canvas构建接口。Pixi问世已有一段时间,它是一个成熟稳定的库。

虽然Pixi.js似乎为浏览器内游戏量身定做,但它在任何需要性能密集型图形的地方都很有用,包括图表和酷炫的效果。记住它是为2D而生的,不是为3D而生的,如果与Tauri等框架结合使用,Pixi可以用于构建桌面等平台。

PM2:用于Node.js的应用程序监控

严格地说,PM2并不是一个JavaScript库,而是一种用JavaScript构建的面向系统的工具。这个非常完整的应用程序监测工具,可以用来根据命令行执行复杂的进程监测和管理工作。

Unix拥有监测和管理工具,比如bg/fg、nohup和screen,但PM2在一个易于使用的软件包中可完成所有这些工作。

PM2有几个重启策略来处理几乎任何情形。比如包括基于CRON时间来启动、停止时自动重启以及达到某个条件(如内存消耗)时启动。它包括一个watch标志,用于文件更改时重新启动。如果您需要一款满足各种Node.js进程管理的工具,PM2值得考虑。

猜你喜欢

堆栈开发人员桌面
桌面舞龙
基于APP在线控制双挤出头FDM桌面3D打印机的研制
桌面云技术在铁路行业中的应用
Semtech发布LoRa Basics 以加速物联网应用
嵌入式软件堆栈溢出的动态检测方案设计*
基于堆栈自编码降维的武器装备体系效能预测
后悔了?教你隐藏开发人员选项
当灰尘厚厚地落满了桌面
一种用于分析MCS-51目标码堆栈深度的方法
三星SMI扩展Java论坛 开发人员可用母语