2021 年 JavaScript 明星项目公布,最受欢迎的竟是它?
01
最受欢迎的项目:zx、Vite和Next.js
今年最受欢迎的项目是谷歌的zx,可在JavaScript或TypeScript中编写简单的命令行脚本。
zx支持在代码中嵌入任何bash表达式(ls、cat、git等等),并借助JavaScript模板字面量获得结果。
zx涵盖了多个软件包提供的功能:
node-fetch:使用与浏览器中相同的API发出HTTP请求
fs-extra:运行文件系统
Globby:匹配给定用户友好模式的文件名
排在第二位的是Vite。Vite是一个构建工具,可通过esbuild编译器提供出色的性能。Vite最初借助 Vue.js 社区提供支持,但如今Vite已兼容主要UI框架:React、Svelte和Lit。
Next.js排名第三,在React领域依旧保持领先的“元框架”地位。
特色工具
尽管未进入前10,但它是今年最引人注目的工具之一。Astro可构建加载速度更快的网站,这些网站的JavaScript数据更少。
这一概念与静态站点生成 (SSG) 非常相似,但主要区别在于Astro支持在页面中使用动态交互内容。
以下是能够在客户端渲染动态组件的情况:
页面加载时
页面闲置时,前提是它是一个低优先级的组件
当使用浏览器Intersection Observer API时组件可见时
Astro最大的优势在于其页面可以使用HTML和任何框架编写的组件组合进行构建:React、Vue.js或Svelte。
02
前端框架
自JavaScript明星项目推出以来,React首次成为最受欢迎的UI框架,其次是Vue.js。
其中最引人注意的是Svelt的崛起,它超过了Angular,位列第三。如今越来越多的工具以及组件将Svelte纳入选择框架中(其中包括Vite)。而Svelt的作者Rich Harris于去年加入Next.js后的Vercel团队。
与Next.js类似的是,Svelte拥有自己的元框架,即SvelteKit,可构建高性能应用程序。
排名第五的是Solid,是React的替代工具之一。其组件采用JSX编写,但与React不同的是,Solid并不依赖虚拟DOM。
03
Node.js框架
一般来说,各大UI框架都拥有自己的“元框架”来构建可扩展的应用程序,并提供诸如路由、服务器端渲染(SSR)、生成静态页面、优化构建等功能。
React拥有最优秀的元框架Next.js
Vue.js的元框架为Nuxt,同时Vue.js分为Vue.js v2和v3两个版本。
Svelte的元框架为SvelteKit
排在第二位的Nest为服务器端Node.js框架的先驱,不与任何UI库相关联。
位列第三的Strapi则是“无头CMS”的先驱,Strapi拥有强大的功能,用户可进行数据管理,其最新版本提供了建立在React组件库之上的设计系统。
Remix由React Router的作者创建,为构建React应用的全栈框架,是Node.js框架中的新秀,同时也是今年最惊艳的工具之一。
自推出以来,Remix就受到大量支持。该框架旨在“提供网络基础,提升用户体验”,其API以网络标准为准(HTTP响应、表单提交等)。
04
构建工具
2021年,构建工具已有的趋势越发明显。
越来越多人开始采用原生ES模块。Vite得到广泛采用(其发展速度比snowpack更快),因而催生出新的工具生态系统(例如基于ES的现代测试框架Vitest)。Node.js生态圈中也开始采用ES模块,但难度要更大。TypeScript甚至推迟了对Node.js中ES模块的支持。
出于性能的考虑,越来越多的前端工具采用其他语言进行开发。
Lee Robinson认为,Rust是JavaScript基础设施的未来。Rust有着良好的性能,同时与JavaScript的互操作性较强。NAPI-RS可让JavaScript和Rust进行交互。
而Next.js则非常看好swc的发展,作为一个可扩展的Rust编译器,swc可将Babel插件移植到Rust上。
Rust是最受欢迎的的非JS语言,但它并不是唯一的语言。Bun采用的是Zig,而Turborepo和esbuild均采用的是Go。
在monorepo中广泛采用的仍然是Lerna。而单引擎工具Nx能够大幅减少构建时间,其覆盖范围一直在快速扩大。其竞争者Turborepo在被Vercel收购后抢占了巨大的市场。
05
Vue生态圈
在Vue 3正式发布的一年中,Vue生态圈正以前所未有的速度迅速发展。
Vue生态圈提供的新的语法例如Vue 3的