近日,risingstars发布了《2021年JavaScript新星》报告。该报告总结了2021年JavaScript领域的优秀项目,并结合过去12个月在GitHub上的加星数。这份“2021JavaScript新星”报告包括以下部分:最受欢迎的项目、前端框架、Node.js框架、构建工具、Vue生态系统、React生态系统、JavaScript中的CSS、测试框架、移动开发、桌面开发、静态站点生成器,状态管理GraphQL。在这份总结报告中,有很多有趣的结果。例如,在“最受欢迎的项目”中,新的“冠军”实际上是一个命令行工具。以下是本次报道的正文,一起来看看吧!Top10最受欢迎项目今年Top10热门项目中最受欢迎的是zx,这是Google推出的一个新工具,可以用来用JavaScript或TypeScript编写简单的命令行脚本。基本上,它允许您在代码中嵌入任何bash表达式(ls、cat、git...任何命令)并使用JavaScript模板字符串等待结果。它介绍了几个流行包提供的实用程序:node-fetch与浏览器中的fetch具有相同的API以创建HTTP请求。fs-extra处理文件系统操作。globby以用户友好的模式匹配给定的文件名。排在第二位的是Vite,这是一个使用esbuild编译器的优秀构建工具。最初创建时,它只接入了Vue.js社区,但现在已经提供了对React、Svelte、Lit等主流UI框架的支持。排在第三位的Next.js保持着React世界“元框架”的领先地位。除了前三名之外,在前十名中排名第五的Tauri是一种使用Web技术构建桌面应用程序的解决方案。与Electron不同,Tauri是用Rust编写的,它并没有在每个应用程序中都附带Node.js运行时(Tauri的1.0beta刚刚在5月发布)。除了前十,还有一些值得讨论的精选项目。例如,Astro是今年最值得关注的项目之一,尽管它没有进入前十。使用更少的JavaScript,Astro也是一个加载速度更快的网站构建器。它的概念接近静态网站生成(SSG),但主要区别在于Astro允许您在网页中引入称为“岛”的动态交互部分。在客户端渲染动态组件时可以应用不同的策略:当页面加载时当页面空闲时,如果它是低优先级组件(考虑跟踪。)当组件可见时,使用浏览器的最佳交集ObserverAPI其中一部分是Astro页面可以使用HTML和任何框架(React、Vue.js或Svelte...)编写的组件的组合来构建。在本次前端框架的报告结果中,“前端框架”一栏排名前五的分别是:React、Vue.js、Svelte、Angular、Solid。其中,排名第一的React是自“JavaScript新星”活动评选以来第一个被评为UI框架第一的项目,但考虑到Vue.js分为两个仓库(第二版和第三版),实际的GoingtoVue.js是第一位的。此次“前端框架”栏目的排名变化最大的是Svelte的崛起,超越Angular占据第三名。如今,越来越多的工具或组件将Svelte纳入目标框架(如Vite)。“Svelte的创造者RichHarris加入Next.js背后的Vercel团队”的重磅消息相信大家都听说过。与Next.js一样,Svelte也有自己的用于构建高性能应用程序的元框架:SvelteKit。排在第五位的是Solid——一个有趣的React替代品,它的组件是用JSX编写的,但不像React那样依赖于虚拟DOM。值得注意的是,Solid的出现也启发了Mitosis,这是一种为任何框架(React、Vue.js、Angular、Svelte...)编写和编译组件的工具。Node.jsFramework在本次榜单的“Node.jsFramework”栏目中,排名前五的项目分别是Next.js、Nest、Strapi、Remix和Nuxt。一般来说,主要的UI框架都有自己的“元框架”来构建现代和可扩展的应用程序,提供路由、服务器端渲染、提前静态生成的页面、生产优化构建等功能。React的Next.js是这个类别的冠军,也可以说是这个领域的先行者。Vue.js的Nuxt现在分为Vue.jsv2和v3两个版本。Svelte还有SvelteKit,比如排名第四的Remix。用于构建React应用程序的全栈框架。作为该类别的新人,Remix也是年度最“故事”的项目之一,因为它是由ReactRouter的作者创建的,直到10月,它只对付费支持者开放。自公开以来,Remix项目获得了很大的动力,其座右铭很明确:“WebFoundations,ModernUserExperience”,因为它的API尽可能遵循Web标准(HTTP响应、表单提交......)。除了这些元框架之外,排在第二位的Nest是更传统的服务器端Node.js框架的领导者,不依赖于任何UI库。排在第三位的是,Strapi似乎是“无头CMS”领域的领导者,这些应用程序为用户提供丰富的仪表板来管理数据,并为开发人员提供现代API以从数据构建任何东西(最新版本提供了一个构建在React之上的设计系统组件库)。构建工具在“构建工具”类别中,排名前五的是:Vite、esbuild、swc、Turborepo和Nx。在刚刚过去的2021年,一些新兴趋势得到进一步发展。例如,原生ES模块的采用仍在继续,Vite已被广泛采用(比snowpack更快),导致了一个新的工具生态系统(例如Vitest-一个现代的基于ES的测试框架)。ES模块也在Node.js生态系统中获得认可,TypeScript甚至推迟了对Node.js中ES模块的支持。知名开发者LeeRobinson曾说过“RustisthefutureofJavaScriptinfrastructure”。Rust特别有趣,因为它结合了出色的性能和与JavaScript的互操作性。NAPI-RS允许JavaScript和Rust相互通信而无需任何序列化成本。Next.js押注于SWC(一种可扩展的Rust编译器,允许他们将最流行的Babel插件移植到Rust)。Parcel2发布了一个新的Rust编译器。Rome工具链也在用Rust重写,但其创始人之一JamieKyle刚刚悄悄离开了公司。Rust显然是一种领先的非JS语言,但它并不是唯一提供出色性能的语言。Bun是用Zig语言写的,这个项目中排名第四的Turborepo和排名第二的esbuild都是用Go语言写的。值得注意的是,EvanWallace离开了Figma:这可能让他有更多时间从事esbuild工作。在monorepo世界中,Lerna仍然被广泛使用,但维护得不是很好。Nx是一种有助于大幅缩短构建时间的单引擎工具,一直在快速发展。它的新竞争对手Turborepo在被Vercel收购后受益于巨大的营销推动。Vue生态系统在“Vue生态系统”项目中,排名前五的是:Slidev、VueElementAdmin、HeadlessUI、NaiveUI、vue-next。在Vue3正式发布一年后,我们看到这个生态系统正在快速发展,并伴随着许多伟大的创新。比如Vue3核心中的
