值得考虑的七个出色的JavaScript项目

译者 | 布加迪
审校 | 孙淑娟
本文介绍您可能还不知道的7个JAVAScript新项目 。这些工具和框架涵盖一系列广泛的功能,预示着JavaScript开发领域的新趋势,比如原生应用程序创建、强类型全栈开发、Node.js运行时环境的简易替代者和浏览器内图形等 。目前,所有项目都受到开发者的追捧,不会长期无人注意 。
1.Tauri:面向桌面应用程序的JavaScript框架Tauri是一种用于构建桌面应用程序的JavaScript框架,也许称之为“元框架”更恰当 。它允许您使用任何前端Web框架(比如React或Svelte),并将其转换成跨平台的富客户端 。
Tauri联合创始人Denjell透露了开发一种新桌面框架的动机:
Tauri旨在简化构建应用程序的过程 。因此如果有人对构建应用程序感兴趣,可能会接触到Tauri 。首先,Tauri为mac、windows和linux构建应用程序 。今年夏天,我们将发布2.0稳定版,新增支持IOS和Android/ target=_blank class=infotextkey>安卓的功能 。  
Tauri的开发过程非常有意思 。该框架让您可以用当前使用的现有管道来构建,比如用Vite构建的SvelteKit 。Tauri可以处理最终针对JavaScript和html构建的任何堆栈 。它在开发服务器上运行,为用户生成原生桌面客户端 。
Denjell描述的开发过程如下所示:
· 使用Svelte、Solid.js、React和Vue等,启动开发服务器 。
· 配置tauri.conf,以便在该端口监听 。
· 启动Tauri开发窗口 。
虽然Tauri的代码面向系统,并且用Rust构建,但开发人员与几乎都是用JavaScript编写的API进行交互 。Tauri是一种引人注目的方法,为广大的JavaScript开发人员构建原生桌面应用程序 。Tauri旨在兑现使用JavaScript进行多平台开发的承诺,不像旧框架试图取得类似的壮举,却最终未能实现 。
2.tRPC:用TypeScript从事API开发tRPC是一种构建API的诱人方法,得到TypeScript的支持 。虽然tRPC与GraphQL属于同一个技术家族,但不同之处在于它使前端代码和后端代码之间的交互实现自动化 。它还具有来自TypeScript强制执行类型这种能力的超级功能 。
我询问tRPC的开发者Alex Johansson为什么开发tRPC,他回答如下:
我是GraphQL的忠实粉丝,现在仍然是,但是当我构建自己的产品时,经常觉得它阻碍了我——我在前后端都使用TypeScript 。为什么我就不能直接使用这种语言本身,而不是引入外部模式?
tRPC的超级功能在于使用现有的技术跨整个堆栈支持各种类型的执行和关联 。它提供了一种双向类型推断,并且无需元数据中介或额外的构建步骤将API定义绑定到消费代码 。当我领悟到tRPC的性质后,就觉得它很简洁,真乃天才之作 。
这里是tRPC团队使用StackBlitz构建的一个全栈React应用程序(https://stackblitz.com/edit/trpc-trpc-k6dpz1) 。tRPC提供了端点,整个系统非常简单,只需要少量文件 。简单就是美 。
在StackBlitz示例中,公开的端点驱动IDE拥有的可用信息 。比如在前端,使用自定义tRPC useQuery钩子填充result变量,就像这样:const result = trpc.greeting.useQuery({ name: 'client' }); 。在后端,这由tRPC路由来处理 。
然后前端可以使用变量,就像这样:{result.data.text} 。IDE(和TypeScript编译步骤)完全了解并能够提供result.data的类型定义 。同样,tRPC路由端点知道前端,比如查询中提供的参数 。
总的来说,tRPC是构建全栈TypeScript应用程序的一种独特而诱人的方法 。它引起了开发者社区越来越大的兴趣,撰写本文时GitHub上已有近20000颗星 。
3.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的传统堆栈 。开发人员也注意到了这点,迄今为止他们在GitHub上给该框架打了40000颗星 。


推荐阅读