您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

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

时间:2023-03-24 11:09:35  来源:51CTO  作者:布加迪

译者 | 布加迪

审校 | 孙淑娟

本文介绍您可能还不知道的7个JAVAScript新项目。这些工具和框架涵盖一系列广泛的功能,预示着JavaScript开发领域的新趋势,比如原生应用程序创建、强类型全栈开发、Node.js运行时环境的简易替代者和浏览器内图形等。目前,所有项目都受到开发者的追捧,不会长期无人注意。

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

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

Tauri联合创始人Denjell透露了开发一种新桌面框架的动机:

Tauri旨在简化构建应用程序的过程。因此如果有人对构建应用程序感兴趣,可能会接触到Tauri。首先,Tauri为macwindowslinux构建应用程序。今年夏天,我们将发布2.0稳定版,新增支持IOSAndroid/ 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颗星。

4.Civet:面向TypeScript的现代框架

如果您把TypeScript和CoffeeScript中的一些想法结合起来,再加入一些额外的优点,会得到什么?您会得到像Civet这样的框架,这个框架旨在使编写的TypeScript代码更简单、更强大。

Civet的创建者Daniel Moore特别指出:“坊间盛传Civet是新的CoffeeScript,不过也许这是好事。CoffeeScript为官方JavaScript规范带来了类、解构、async/awAIt、箭头函数和rest参数等要素。”

值得关注的是,Civet并不局限于改进TypeScript,它还使用JSX。正如Erik Demaine(负责大部分JSX改进之处的项目开发人员)指出:

Civet进一步完善了这些想法,添加了更迫切需要的语言特性(比如管道操作符、许多JSX改进之处以及很快推出的模式匹配switch),并在TypeScript的基础上构建(面向TypeScript编译),因此它与现有工具极其兼容。

在代码片段1中,您可以看到Civet实际运行的例子(来自Civet说明文档)。

代码片段1:简单的Civet例子

// Civet syntax
i .= 0
loop
i++
break if i > 5

// TS output
let i = 0;
while (true) {
i++;
if (i > 5) {
break;
}
}

别忘了Civet还可以处理JSX!我总是觉得JSX中的循环语法很笨拙,但是Civet简化了它。欲了解更多信息,可以参阅Civet速查表:

​https://civet.dev/cheatsheet。​

5.Tabby: 面向Node.js的终端

我不得不承认我对游戏机和shell的喜爱由来已久。自从我发现Commodore 64游戏背后的奥妙后就喜欢上了,我可以把BASIC代码输出到游戏机上。Tabby是一个功能齐全、跨平台的窗口终端,取代诸如cmd、powershell和Terminal之类的原生应用程序。它还可以像Putty那样处理SSH、像WinSCP那样处理SFTP。

我询问Tabby的创建者Eugeny关于创建一个新的终端应用程序的决定。

我起初创建[Tabby]是由于对使用Hyper(另一个基于Electron的Terminal应用程序)颇为沮丧,以及对其他应用程序停留在90年代普遍感到失望。另一个灵感来源是VS Code这个应用程序以更好的整体体验之名抛弃了约定。我希望发展壮大社区,最终重写[Tabby]以便使用Tauri而不是Electron,以缩减应用程序代码量并提高性能。

Tabby在跨环境保持一致的平台中为您提供了颜色、特殊键处理和复制/粘贴等方面所有好的细节。

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

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

Pixi为您提供了一套注重性能的高级API,用于使用WebGL和HTML5 Canvas构建接口。Pixi问世已有一段时间,它是一个成熟稳定的库。您可以在这里找到NPM软件包:https://www.npmjs.com/package/pixi.js?activeTab=readme。

虽然Pixi.js似乎为浏览器内游戏量身定做,但它在任何需要性能密集型图形的地方都很有用,包括图表和酷炫的效果。记住它是为2D而生的,不是为3D而生的。

如果与Tauri等框架结合使用,Pixi可以用于构建桌面平台等。您可以在Pixi在线游乐场(https://www.pixiplayground.com/#/edit)体验一番Pixi。

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

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

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

PM2有几个重启策略来处理几乎任何情形。比如包括基于CRON时间来启动、停止时自动重启以及达到某个条件(如内存消耗)时启动。它包括一个——watch标志,用于文件更改时重新启动。

如果您需要一款满足各种Node.js进程管理需要的工具,PM2值得考虑。

原文链接:https://www.infoworld.com/article/3687616/7-awesome-javascript-projects-to-check-out-today.html



Tags:JavaScript   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  Search: JavaScript  点击:(5)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践——如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  Search: JavaScript  点击:(27)  评论:(0)  加入收藏
构建一个通用灵活的JavaScript插件系统?看完你也会!
在软件开发中,插件系统为应用程序提供了巨大的灵活性和可扩展性。它们允许开发者在不修改核心代码的情况下扩展和定制应用程序的功能。本文将详细介绍如何构建一个灵活的Java...【详细内容】
2024-03-20  Search: JavaScript  点击:(20)  评论:(0)  加入收藏
对JavaScript代码压缩有什么好处?
对JavaScript代码进行压缩主要带来以下好处: 减小文件大小:通过移除代码中的空白符、换行符、注释,以及缩短变量名等方式,可以显著减小JavaScript文件的大小。这有助于减少网页...【详细内容】
2024-03-13  Search: JavaScript  点击:(2)  评论:(0)  加入收藏
跨端轻量JavaScript引擎的实现与探索
一、JavaScript 1.JavaScript语言JavaScript是ECMAScript的实现,由ECMA 39(欧洲计算机制造商协会39号技术委员会)负责制定ECMAScript标准。ECMAScript发展史: 2.JavaScript...【详细内容】
2024-03-12  Search: JavaScript  点击:(2)  评论:(0)  加入收藏
面向AI工程的五大JavaScript工具
令许多人惊讶的是,一向在Web开发领域中大放异彩的JavaScript在开发使用大语言模型(LLM)的应用程序方面同样大有价值。我们在本文中将介绍面向AI工程的五大工具,并为希望将LLM...【详细内容】
2024-02-06  Search: JavaScript  点击:(53)  评论:(0)  加入收藏
18个JavaScript技巧:编写简洁高效的代码
本文翻译自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例...【详细内容】
2024-01-30  Search: JavaScript  点击:(68)  评论:(0)  加入收藏
使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!
本文作者在综合成本因素之下,决定用 Java 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是...【详细内容】
2024-01-11  Search: JavaScript  点击:(99)  评论:(0)  加入收藏
JavaScript前端框架2024年展望
Angular、Next.js、React和Solid的维护者和创作者们展望2024年,分享了他们计划中的改进。译自2024 Predictions by JavaScript Frontend Framework Maintainers,作者 Loraine...【详细内容】
2024-01-05  Search: JavaScript  点击:(91)  评论:(0)  加入收藏
JavaScript开发者转向Rust的原因?
JavaScript开发者转向Rust的原因可能有很多,这里列出一些可能的原因: 性能: Rust是一种编译型语言,其性能通常优于JavaScript等解释型语言。对于需要处理大量数据或需要高并发的...【详细内容】
2024-01-04  Search: JavaScript  点击:(99)  评论:(0)  加入收藏
▌简易百科推荐
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  前端新世界  微信公众号  Tags:JavaScript   点击:(5)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践——如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  前端新世界  微信公众号  Tags:JavaScript   点击:(27)  评论:(0)  加入收藏
又出新JS运行时了!JS运行时大盘点
Node.js是基于Google V8引擎的JavaScript运行时,以非阻塞I/O和事件驱动架构为特色,实现全栈开发。它跨平台且拥有丰富的生态系统,但也面临安全性、TypeScript支持和性能等挑战...【详细内容】
2024-03-21  前端充电宝  微信公众号  Tags:JS   点击:(25)  评论:(0)  加入收藏
构建一个通用灵活的JavaScript插件系统?看完你也会!
在软件开发中,插件系统为应用程序提供了巨大的灵活性和可扩展性。它们允许开发者在不修改核心代码的情况下扩展和定制应用程序的功能。本文将详细介绍如何构建一个灵活的Java...【详细内容】
2024-03-20  前端历险记  微信公众号  Tags:JavaScript   点击:(20)  评论:(0)  加入收藏
对JavaScript代码压缩有什么好处?
对JavaScript代码进行压缩主要带来以下好处: 减小文件大小:通过移除代码中的空白符、换行符、注释,以及缩短变量名等方式,可以显著减小JavaScript文件的大小。这有助于减少网页...【详细内容】
2024-03-13  WangLiwen    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
跨端轻量JavaScript引擎的实现与探索
一、JavaScript 1.JavaScript语言JavaScript是ECMAScript的实现,由ECMA 39(欧洲计算机制造商协会39号技术委员会)负责制定ECMAScript标准。ECMAScript发展史: 2.JavaScript...【详细内容】
2024-03-12  京东云开发者    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
面向AI工程的五大JavaScript工具
令许多人惊讶的是,一向在Web开发领域中大放异彩的JavaScript在开发使用大语言模型(LLM)的应用程序方面同样大有价值。我们在本文中将介绍面向AI工程的五大工具,并为希望将LLM...【详细内容】
2024-02-06    51CTO  Tags:JavaScript   点击:(53)  评论:(0)  加入收藏
JS小知识,使用这6个小技巧,避免过多的使用 if 语句
最近在重构我的代码时,我注意到早期的代码使用了太多的 if 语句,达到了我以前从未见过的程度。这就是为什么我认为分享这些可以帮助我们避免使用过多 if 语句的简单技巧很重要...【详细内容】
2024-01-30  前端达人  今日头条  Tags:JS   点击:(56)  评论:(0)  加入收藏
18个JavaScript技巧:编写简洁高效的代码
本文翻译自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例...【详细内容】
2024-01-30  南城大前端  微信公众号  Tags:JavaScript   点击:(68)  评论:(0)  加入收藏
使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!
本文作者在综合成本因素之下,决定用 Java 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是...【详细内容】
2024-01-11    CSDN  Tags:JavaScript   点击:(99)  评论:(0)  加入收藏
站内最新
站内热门
站内头条