前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2024年2月前端技术新动态:迈向现代化的全速前进

2024年2月前端技术新动态:迈向现代化的全速前进

作者头像
前端达人
发布于 2024-02-21 09:50:50
发布于 2024-02-21 09:50:50
1.5K0
举报
文章被收录于专栏:前端达人前端达人

随着技术的不断进步,前端领域每月都有新的变化和挑战。2024年2月,我们见证了几项重大的技术更新,从Deno的性能提升到Turborepo的重大改进,再到jQuery 4.0.0 Beta的发布,这些变化不仅标志着前端开发向着更现代化、更高效的方向迈进,也给前端开发者带来了新的思考和机遇。本期将带你一起探索这些新动态,看看它们如何影响我们的开发实践。

LLRT:亚马逊基于QuickJS的新JavaScript运行时

https://github.com/awslabs/llrt

在JavaScript的世界里,性能和资源效率是开发者们永恸追求的目标。亚马逊最新推出的LLRT(低延迟运行时)无疑为这一追求注入了新的活力。LLRT是一个基于QuickJS的JavaScript运行时,它在Rust中构建,旨在为服务器端代码提供快速启动和高效的内存使用。接下来,我们将深入探讨LLRT的特性,看看它如何为现代服务器端JavaScript应用带来变革。

采用QuickJS引擎,兼容性与高效并存

LLRT使用QuickJS作为其JavaScript引擎,这一选择本身就颇具意义。QuickJS是一个轻量级的JavaScript引擎,支持ECMAScript 2020标准,能够满足大多数现代JavaScript开发的需求。虽然LLRT并不追求支持所有Node.js API,但它已经支持了许多,足以应对大部分服务器端开发场景。

专注于快速启动与内存效率

LLRT最大的卖点之一就是它对快速启动和内存使用的优化。由于QuickJS没有即时编译器(JIT),这意味着长时间运行的代码可能会较慢。然而,这一设计选择带来了两大好处:

  • 简化系统复杂度:即时编译器是一个高度复杂的技术组件,它会显著增加运行时的整体大小,并引入更多的系统复杂性。
  • 资源效率更高:没有JIT的开销,LLRT能够节省CPU和内存资源,这些资源可以更有效地分配给代码执行任务,从而减少应用程序的启动时间。

为什么LLRT值得关注?

云计算微服务架构日益盛行的今天,启动速度和资源效率对于服务器端应用尤为关键。LLRT的设计理念恰好与这一需求相吻合,它不仅为开发者提供了一个轻量级的运行时选项,还通过优化资源使用,有助于降低云服务的成本。

此外,LLRT的出现也反映了Rust语言在系统编程领域日益增长的影响力。通过在Rust中实现,LLRT能够充分利用Rust的性能优势和安全特性,为JavaScript运行时带来了新的可能性。

LLRT代表了JavaScript服务器端运行时的一个新方向,它通过结合QuickJS的轻量级特性和Rust的高效能力,为开发高性能、资源友好的服务器端应用提供了新的工具。随着技术的不断发展,LLRT可能会成为越来越多开发者的选择。无论是对于追求极致性能的技术极客,还是希望降低云计算成本的企业,LLRT都值得一试。

jQuery 4.0.0 Beta:迈向现代化的一小步

在JavaScript的世界里,jQuery曾是无处不在的存在,它简化了HTML文档遍历和操作、事件处理以及Ajax等Web开发的常见任务。即便在当今许多开发者转向使用现代前端框架的情况下,jQuery仍在许多项目和平台中占有一席之地,如WordPress。最近,jQuery 4.0.0 Beta的发布标志着这个经典库向现代化迈出了一小步。

告别IE 10

jQuery 4.0.0 Beta的一个显著变化是放弃了对IE 10的支持。这一决定反映了Web开发社区对现代浏览器特性的拥抱,以及逐步淘汰旧版浏览器以促进Web技术发展的趋势。通过放弃对旧版IE的支持,jQuery能够减少代码复杂性,提高性能,同时使得库更加精简。

移除废弃的API

随着Web技术的发展,一些早期的jQuery方法和功能已经变得过时。jQuery 4.0.0 Beta采取了大刀阔斧的措施,移除了许多这样的废弃API,这对于保持库的现代性和高效性至关重要。对于开发者来说,这意味着需要更新旧代码,以适应新版本的jQuery,但这也是向前迈出的必要步骤。

转向现代JavaScript

最值得注意的是,jQuery 4.0.0 Beta向现代JavaScript迈进了一小步。其中最显著的变化是迁移到了ESM(ECMAScript模块)。这是一个重大进步,因为ESM是现代JavaScript应用的标准,支持模块化的代码组织和更高效的加载方式。这一转变不仅有助于开发者在使用jQuery时更好地利用现代JavaScript特性,也使得jQuery能够更容易地与现代构建工具和模块加载器集成。

虽然许多项目和开发者可能已经转向使用React、Vue或Angular等现代前端框架,jQuery的这次更新仍然具有重要意义。它不仅表明了jQuery团队致力于保持这个库的相关性和现代化,也提供了对于仍在使用jQuery的项目一个向前看的路径。jQuery 4.0.0 Beta的发布,是对这个经典库历史的尊重,同时也是对未来的一个承诺。

Vite 5.1新特性解读:开启前端开发新篇章

Vite作为现代前端开发环境的佼佼者,其最新版本5.1的发布无疑是一场前端界的盛事。Vite 5.1不仅继续优化了开发体验,还引入了诸多创新功能,特别是在服务器端渲染(SSR)方面的全新升级,无疑将为开发者带来更为流畅和高效的开发流程。今天,我们就来聊聊Vite 5.1的几大亮点,看看它如何激发前端开发的新活力。

新增Vite运行时API:SSR的革新之举

Vite 5.1最受瞩目的莫过于其全新的运行时API,这是对Vite当前服务器端渲染基础设施的一大升级。新的运行时API带来了以下几点好处:

  • 支持SSR过程中的热模块替换(HMR)。这意味着在服务器端渲染的过程中,开发者可以实时更新模块,极大提高了开发效率。
  • 与服务器解耦。新API不再依赖于任何特定的服务器,这使得无论客户端数量多少,每个客户端都拥有自己的模块缓存。你可以通过多种方式(如消息通道、fetch调用、直接函数调用、websocket)与其通信。
  • 跨环境兼容性强。新的运行时API不依赖任何特定环境(如Node.js、Bun、Deno)内置的APIs,使得它能够在任何环境下运行。
  • 易于与其他工具集成。如果你使用的工具有自己的代码运行机制,Vite允许你提供一个运行器,以使用eval代替new AsyncFunction,从而实现更灵活的集成。

样式和资源处理的优化

Vite 5.1对CSS和资源处理也进行了显著优化:

  • 增强了对.css?url的支持,build.assetsInlineLimit现在支持回调函数,为开发者提供了更大的灵活性。
  • 循环导入中的HMR改进,使得循环依赖的模块热替换更加稳定。

更多实用特性

  • 支持ssr.external: true,允许外部化所有SSR包,这对于减少包体积、优化性能有着直接的好处。
  • 预览服务器新增close方法,方便开发者在需要时关闭预览服务器。
  • 性能各方面的提升,Vite团队持续优化了框架的性能,使得开发和构建过程更加高效。

Vite 5.1的发布标志着前端开发进入了一个新的时代,无论是开发体验、性能优化,还是跨平台兼容性,Vite都在不断推动前端技术的边界。对于热衷于技术和创新的你来说,了解并掌握Vite 5.1的新特性,无疑将为你的项目开发添翼加速。

Node.js社区关于默认启用Corepack的热议

近日,Node.js社区掀起了一场关于是否应该默认启用Corepack的激烈讨论。这场讨论始于2023年11月的一个提案,引发了关于未来是否通过Corepack提供npm的疑问。部分社区贡献者认为,Corepack的整合最终目标是将Node.js的发布和npm的发布解耦。

什么是Corepack?

Corepack是Node.js的一个实验性工具,旨在作为包管理器的前置代理,支持yarn、pnpm以及npm。如果在项目目录内执行某个包管理器的install命令时启用了Corepack,它将如何工作?

  • 如果本地项目配置了你正在使用的包管理器,Corepack会静默下载并缓存最新兼容版本。
  • 如果本地项目配置了不同的包管理器,Corepack会提示你使用正确的包管理器重新运行命令,从而避免破坏安装成果。
  • 如果本地项目没有配置任何包管理器,Corepack会假设你知道自己在做什么,并使用已被标记为“已知良好发布”的包管理器版本。

讨论焦点

默认启用Corepack的提议引发的讨论不仅仅是技术层面的,更触及到Node.js社区的治理和未来方向。一方面,通过默认启用Corepack,Node.js希望提供一个更加统一和灵活的包管理体验,让开发者能够更加自由地选择适合自己的包管理工具。另一方面,这一变动潜在地指向了将npm作为Node.js的一个可选而非必备组件的未来,这引起了一部分人的担忧和反对。

对社区的影响

这场讨论对Node.js社区有着深远的影响。首先,它反映了社区对于如何平衡创新与稳定、自由与规范之间的持续探索。其次,如果最终决定默认启用Corepack并逐步解耦npm,这将是Node.js生态中一个重要的转折点,可能会改变开发者日常使用和理解Node.js的方式。

Turborepo 1.12更新亮点

Turborepo是一个高效的JavaScript/TypeScript代码库构建工具,专为大型和复杂的前端项目设计。它通过提供一种优化的方式来管理多个包或应用的依赖关系和构建过程,从而极大地提高了开发效率和构建速度。在最新的1.12版本中,Turborepo带来了一系列值得关注的更新和改进。

任务日志颜色

在新版本中,Turborepo引入了原始shell日志颜色的默认使用,使得任务日志更加生动易读。这一改进让开发者能够更快地识别关键信息,提升了日志查看的用户体验。

错误信息大幅改进

Turborepo 1.12对错误信息进行了全面的改进,特别是对于配置错误的提示。改进后的错误信息更加直观和易于理解,帮助开发者快速定位和解决配置问题,减少了调试的时间和复杂度。

输入法的改进

此版本还改善了输入法的便捷性,允许用户在使用Turborepo的默认设置的同时,根据自己的需求进行自定义输入。这一改进提高了Turborepo的灵活性和可用性,使其能够更好地适应不同项目的特定需求。

遥测功能

Turborepo 1.12引入了遥测功能,目的是帮助开发团队了解用户最关心的特性和使用情况,从而更有针对性地优化产品。通过收集匿名的使用数据,Turborepo团队能够更加聚焦于对用户最重要的功能和改进。

Rust迁移和二进制文件压缩

值得一提的是,Turborepo在这次更新中完成了对Rust的迁移工作,包括移除了--go-fallback标志,并且相比于1.11版本,turbo二进制文件的大小减小了58%。这一改进不仅提升了Turborepo的性能,也使得其安装和运行更加高效。

这些改进使Turborepo成为了前端开发者和团队更加强大、更加易用的工具,有助于他们更高效地管理和构建大型前端项目。

Deno在2024年:全速前进,兼容性与性能并进

Deno,作为一个现代的JavaScript和TypeScript运行时,自2018年首次亮相以来,一直在不断发展和完善。进入2023年,Deno的发展更是加速,特别是在Node/npm的兼容性和性能提升方面,同时继续朝着极大简化Web开发的目标前进。

Node/npm兼容性

对于许多开发者来说,Node.js和其包管理工具npm已成为日常开发工作的一部分。Deno在2023年的发展重点之一就是提高与Node/npm的兼容性,这意味着开发者可以更轻松地迁移现有的Node.js项目至Deno,或者在Deno项目中使用npm上的包。这一点对于促进Deno在开发社区的接受度和使用率有着重要意义。

性能提升

性能一直是Deno关注的重点。2023年,Deno团队在运行时性能方面做了大量工作,旨在提供更快的启动时间和更高效的资源管理。这些性能优化不仅使得Deno成为一个更加强大的工具,对于需要处理大量并发请求的Web应用和API来说,这些改进尤其关键。

简化Web开发

Deno的另一个核心目标是简化Web开发流程。通过提供一套统一的工具集,包括但不限于内置的测试工具、格式化工具以及对于前端和后端开发的一站式解决方案,Deno旨在减少开发者在项目搭建和维护上的负担。2023年,Deno在这一领域的努力继续深化,通过引入新的库和工具,以及优化现有功能,进一步提升开发者的效率。

随着Deno在兼容性、性能以及开发体验上的持续进步,它正逐步成为一个越来越有吸引力的现代JavaScript/TypeScript运行时选择。对于那些寻求一个安全、高效且易于上手的Web开发平台的开发者来说,Deno在2023年的进展值得关注。

V8 JavaScript引擎的静态根:具有编译时常量地址的对象

在JavaScript的世界里,undefined、true以及其他核心JavaScript对象是构建用户定义对象的原子。那么,这些基础对象从何而来?它们是如何保证在任何时候都可用,且访问速度极快的呢?V8引擎给出了答案:这些对象被称为不可移动的不变根(immovable immutable roots),它们存放在自己的堆空间——只读堆中。

什么是静态根?

静态根是指那些在编译时就能确定内存地址的对象。由于这些对象在JavaScript程序的执行过程中频繁使用,因此快速访问这些对象变得至关重要。V8引擎通过将这些基础对象放置在只读堆中,实现了对它们的快速访问。

只读堆的优势

性能提升:通过在编译时确定这些核心对象的内存地址,V8能够在执行JavaScript代码时快速定位到这些对象,从而提高执行效率。

内存安全:将这些对象放置在只读堆中,可以防止它们被意外修改,确保了这些核心对象的不变性和程序的稳定性。

资源优化:由于这些对象是不变的,V8引擎可以在多个上下文中重用这些对象,减少内存消耗。

对开发者的意义

了解V8引擎如何处理undefined、true等核心JavaScript对象,对开发者来说不仅是一种对底层机制的认识,也有助于更深入地理解JavaScript运行时的性能优化。这种机制展示了V8团队在设计和优化JavaScript执行环境时的智慧,通过静态根和只读堆的概念,有效地提升了JavaScript代码的执行效率和安全性。

结束

随着我们深入探讨了2月份前端技术的重要更新,显而易见的是,无论是在性能优化、工具升级还是兼容性改进方面,这些变化都在推动前端开发的边界向前延伸。对于前端开发者来说,紧跟技术潮流、不断学习和适应新工具和技术,是我们不变的追求。希望本期内容能给你带来启发和帮助,让我们一起期待前端技术的更多可能性。别忘了持续关注「前端达人」,我将为你带来更多前端技术的精彩分析和深度探讨,一起成长为更优秀的前端开发者。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端达人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Mac shell(fish) javac 中文乱码
通过用户的环境变量(~/.bash_profile)去改.写入文件.bash_profile  vim ~/.bash_profile
obaby
2023/02/23
5530
theos iosopendev各种蛋疼的问题
1.xcrun: error: unable to find utility “codesign_allocate”, not a developer tool or in PATH
obaby
2023/02/23
4560
让Mac OS终端支持高亮显示
编辑用户当前目录下的.bash_profile文件即可,如果没有可以创建一个。在文件中输入如下的内容,保存之后重启即可。
obaby
2023/02/24
1.7K0
Charles V4.6.1 序列号
Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。开发iOS都在Mac系统上吧,安装Charles的时候要先装好Java环境。这么好的软件不是免费的,官网要好几十刀呢,我这里有一个Mac上的破解版,点击这里下载,当然不是最新版的。如果你想体验最新版,Charles是提供试用的。
obaby
2023/02/22
9100
iPhone5 QQ音乐文件导出
不过随便去目录下搜索了下还是能找到文件在什么地方的,什么tm0,tm3之类的文件,全部下载下来就行了。
obaby
2023/02/23
5500
iOS https(SSL/TLS)数据捕获
要捕获iPhone上的appstore的数据还真的没那么容易,以前介绍的那些使用代理手工导入证书的方法已经完全失效了,结果就是安装证书之后再打开appstore也无法正常的建立连接。按照我的分析其实是appstore在检测证书无效之后直接就没有发起任何的请求(可以通过wireshark抓包查看网络数据) 随之而来的是第二种方法,patch ssl证书校验函数,根据这个原理实现的有两个工具,一个是ssl kill switch,另外一个是trustme。原理都是一样的,并且也非常的简单,按照作者的说法是truestme实现的更底层一些。但是很不幸的是,结局是同样的悲哀的,在iOS6之后这个东西也是失效了。 其实我这里要说的方法也比较简单,如果阅读过上面两个工具的源代码(请自行搜索相关代码),并且理解mac os/iOS 下https实现的相关原理,那么也就自然的想到hook发送和接收函数的方法来捕获数据了。 需要关心的函数只有两个sslread和sslwrite: 代码:
obaby
2023/02/23
5460
海信(Hisense)60E3F 安装第三方应用
老家的房子装修完一段时间了,最近准备家电。于是就想着把现在用的电视替换下来,带回老家用。之所以有这么个决定是因为1在老家呆的时间有限,并且现在用的电视已经四五年了,系统非常卡。但是如果连接有线电视看基本没有任何问题,尺寸也足够55寸。于是就从二手东买了一个新的进来,做完安装好之后,想给电视装个ds file。结果拷贝到u盘之后发现文件不显示。无法安装。
obaby
2023/02/22
8050
Litespeed Cache https模式下css/js 加载失败
安装litespeed插件并且开启之后,发现原有的页面样式丢失了。导致这个问题的原因在于虽然访问的是https的链接,但是资源文件依旧是http协议加载的,所以就直接挂掉了。解决这个问题最简单的办法应该是开启全站https,但是我并不想这么干,想依旧提供http访问的能力。于是找各种解决方法,网上提供的解决方案包含但不限于下面这几种:
obaby
2023/02/22
6400
Putty OpenSSH SSH-2 private key (old PEM format)
当使用putty登陆时,会提示这个错误,这是因为key的格式不兼容putty导致的,需要转换一下
obaby
2023/02/22
8860
SQLiteMaestro v11.3.0.1 Crack Guide
其实这个东西也不算是破解掉了,因为外面的那个aspr的壳没有脱掉,于是借助工具创建了一个带壳的loader。其实东西如果脱壳了,那么破解就非常简单了。如果不知道怎么脱这个壳,参考这里。如果已经脱掉壳了。那么破解也就非常简单了。这里就简单的贴几条代码,看懂了就看,看不懂就算了。为了兑现前面说的话,这里不再提供loader下载,大家去别的地方找吧。不好意思。
obaby
2023/02/24
2160
OSX app 启动后在程序坞不显示
用回mac之后发现各种神奇的问题,比如cocos运行之后在程序坞中找不到,开的窗口多了之后每次想找到他得翻半天(主要是不会各种神奇的快捷键)。
obaby
2023/02/24
6010
两道C语言题目
1:给定一个升序排列的数组,要求插入一个新数据后仍然升序输出,例如:原数据为:1,6,9,23,56,95插入新的一个数据50后输出变为:1,6,9,23,50,56,95.
obaby
2023/02/28
6240
两道C语言题目
.vimrc 配置文件
Mac OS下默认的vim配置文件也够蛋疼的,什么都没有。这个发一个,不是我自己写的 😉 ,其实本来应该是那个地方的来着我也忘了,去掉了一行不支持的配置。 最简单的办法是在用户目录下执行 wget http://www.h4ck.org.cn/.vimrc 当然也可以复制下面的代码自己创建这个文件: "========================================================================= " DesCRiption: vimrc for
obaby
2023/02/23
9500
是UPS吖(二)–-群晖
开篇当然还是最喜欢的小姐姐啊。其实ups的安装还是非常简单的,不过后面的插孔都是3插,机柜上就安装了一排机柜插座,导致出现一个问题就是机柜内很多双口插头没地方插,本来想把边上的插排撤掉的,但是明显不行啊,两个光纤转换器插头+路由器+交换机的插头都没地方插,于是就把插排又给按上了。安装之后的效果就是下面这个样子啦。
obaby
2023/02/22
7300
深入解析Xcode无证书编译以及真机调试
从标题就可以看出文章的主要内容了,一个是无证书编译,另外一个则是真机调试。网上关于此类文章很多,但是基本都是抄来抄去的,也没一个详细的说明具体这么做的原因。并且配置的步骤也基本一致,没什么太大的区别。
obaby
2023/02/23
1.9K0
Plist Editor Pro(plist文件编辑工具)V2.5[64 bit] for Windows Crack
链接:https://pan.baidu.com/s/1CrzI_9GRjquUgQy4LIL0BA 密码:1t70
obaby
2023/02/24
1.9K0
再谈Mac 终端的高亮
也不知道为什么苹果不愿意默认情况下让那个终端支持高亮,每次都要非诚蛋疼的重新配置,哈哈,其实问题的关键是我用的不是mac的主机,用的虚拟机跑的mac,现在还是挺顺畅的。今天这里要介绍的不是配置脚本,是另外的一个终端工具,fish。嘎嘎
obaby
2023/02/23
7930
Windows git log 中文乱码
文章很多,但是没啥重点,问题的根源在于less的编码问题。所以只需要一步解决,设置 LESSCHARSET=utf-8 环境变量。
obaby
2023/02/24
7350
批处理 激活virtualenv 并且运行Python 命令
* 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《批处理 激活virtualenv 并且运行Python 命令》 * 本文链接:https://h4ck.org.cn/2019/01/%e6%89%b9%e5%a4%84%e7%90%86-%e6%bf%80%e6%b4%bbvirtualenv-%e5%b9%b6%e4%b8%94%e8%bf%90%e8%a1%8cpython-%e5%91%bd%e4%bb%a4/ * 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。
obaby
2023/02/24
8430
Mac m1 安装Wine/WineHQ
在m1上安装尝试了比较多的教程,基本都失败了。直到看到这篇文章:https://git.boc-group.eu/adoxxosports/adoxx-15-64bit/-/blob/master/Installation%20Manual%20(M1)%20Wine%20und%20Azure%20SQL
obaby
2023/02/22
8.1K0
相关推荐
Mac shell(fish) javac 中文乱码
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • LLRT:亚马逊基于QuickJS的新JavaScript运行时
  • jQuery 4.0.0 Beta:迈向现代化的一小步
  • Vite 5.1新特性解读:开启前端开发新篇章
  • Node.js社区关于默认启用Corepack的热议
  • Turborepo 1.12更新亮点
  • Deno在2024年:全速前进,兼容性与性能并进
  • V8 JavaScript引擎的静态根:具有编译时常量地址的对象
  • 结束
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档