为了账号安全,请及时绑定邮箱和手机立即绑定

Node.js 19 来了!看看都有哪些新改动

Node.js v19 的更新日志,重点介绍了更易于人阅读的新增功能和改进之处

图片来源 freestocksUnsplash,图片由作者处理。

像往常一样,每当新的运行时版本的发行说明发布时,我们会收到许多关于内部透明细节的更新(至少对我们这些运行时的用户来说)。

不过,在 Node.js 19 的发行说明中,有一些有趣的信息,如果你没有细看,可能就错过了 这个公告 中的内容。

让我们来看看在版本 19 中宣布的我们最喜欢的 JavaScript 运行环境有哪些最酷的部分。

现在我们有了WATCH标识

虽然它仍然处于实验模式,但至少我们可以说我们已经有了一个初步的watch标志。这是否意味着Node正在慢慢从Deno团队那里学到一些东西?

如果你还不知道,Deno 在设计他们的 CLI 时采取了与 Node 不同的策略。Deno 团队并没有仅仅提供一种简洁的方式来运行脚本,而是提供了一个集成了所有需要功能的单一可执行文件,包含了你需要的所有功能。

这意味着文件监视器、测试运行器、代码美化器以及更多功能。这与Node在过去十年内所采取的方法截然不同,但似乎确实有效。在与Deno开发者交流之后,我开始明白将所有这些工具都整合到一个地方的吸引力。

所以我们能否谨慎地说,这只是众多社区开发工具整合到他们自己的CLI工具中的第一步?

难说,可能是类似,但也有可能只是个例。

特别是这个标志特别有意思,因为它通常默认会监视你的入口文件以及任何需要或导入的依赖。如果你想监控特定文件夹中的变化(比如,配置文件的变化),你还需要指定处于试验阶段的 watch-path 选项。

目前,一旦进入“监视模式”,一旦检测到变化,我们只能重新启动Node.js进程。就这样结束了。

别误会,这已经很多了,但如果我们还能以某种方式与那个事件联系起来的话,做一些其他有趣的任务也会不错。

哦,好吧,或许下个版本吧!

自定义 ESM 解析设置调整(千万不要跳过这项设置哦!)注:ESM 为环境设置模块,请确保了解其含义后再进行操作。

看到这个标题时,我就直接跳过去了,因为我以为那是个早就被删掉的内部标志,所以也就没太在意。

然后我实际上跟着一些链接,看看这变化是怎么回事。

你看,对于非核心 Node.js 开发人员来说,这个名字可能有点晦涩,但它的功能却并不复杂。你有多少次像这样在 Node.js 中引入文件呢?

const myPkg = require("./folder/file")

注意那里没有扩展,因为 Node 会尝试很多其他方法才会放弃。

或者可以直接引用一个文件夹,比如这样:

my-folder目录下的myPkg模块引入当前文件,并将其赋值给常量myPkg

这只要你在那个文件夹里有一个叫 index.js 的文件就能行,Node 会自动找它。

但如果你尝试 import 同一个包,情况就不一样了。Node 的 “ESM 规格解析” 并不支持这些额外的行为。相反,如果你没有直接指定带有正确扩展名的文件,你就找不到它了。

你可以通过使用标志 --experimental-specifier-resolution=node 来模仿 CommonJS 的行为,那样会有效。但这个标志带有“experimental”(实验性)字样的冗长且难看。祝你好运说服你的用户这安全无虞。

幸運的是,對你來說,現在在 Node.js 19 中這已不再是問題。現在你可以使用新的加载器来做类似的事情,它们都可以正常工作了。

从 './文件' 导入文件 //只要确保 'file' 的扩展名正确

还是

import myFile from './folder' //如果有的话,这个导入语句会找到 'folder' 文件夹内的 'index.js' 文件。

import myFile from './folder' //如果有的话,这个导入语句会找到 'folder' 文件夹内的 'index.js 文件'。

经过调整,最终的翻译为:

import myFile from './folder' //如果有的话,这个导入语句会找到 'folder' 文件夹内的 'index.js 文件'。

你看,这个名字让人以为更新是别的东西,但实际上这只是个很好的DX修复,非常受欢迎。

你喜欢刚才读的文章吗?要不要订阅我的免费邮件,我会在那里分享我在IT行业20年的经验。加入“碎碎念”吧!

我们还有一个新的V8版本在使用

我们从使用版本 10.2 转换到了版本 10.7

谁管呢?

好吧,还真有可能!你看,除了这些版本更新可以让Node.js使用最新的运行时环境,确保我们不落后外,该版本还引入了ECMAScript阶段3提案中的一个新特性:关于Intl.numberFormat API的功能更新(详情请见此链接)。

特别是如果你的项目中涉及数字时,总是很兴奋尝试新的语言特性,但这个特定的特性特别有趣。

除此之外,它们还提高了现有方法的一些精确度,并增加了新的格式选项。虽然提案目前仍处于官方的第三阶段,但现在已经可以用最新版本的Node来试用一下,所以不妨试试看!

我们即将失去对 DTrace、SystemTap 和 ETW 的支持

如果你还不知道的话,DTrace、SystemTap 和 ETW(这些是性能分析工具)在不同的操作系统上工作,Node.js 团队一直在为此努力,确保它能与这些工具兼容并正常工作。

这样你就能使用这些外部工具来性能分析和理解你的Node.js代码在不同情况下的运行表现。

然而,根据公告,维持它们存活和更新的努力与带给使用Node的用户的好处相比不值得。

它真的没了。

你以前是不是在利用这个机会?现在准备怎么应对?

如果你看公告里的内容,还有一些其他的更新,但说实话,这些是我特别注意到的。特别是那些需要我花点时间才能理解的更新。

你对 Node.js 19 激动吗?留言说说这些变化对你有什么影响!我很乐意了解大家是如何使用 Node 的!

使用可重用的組件,就像樂高積木一樣,來構建應用程序

这是一个图片链接,点击可以查看:

[Bit](https://bit.cloud)的开源工具帮助了250,000+开发者,他们用组件构建应用

将任何用户界面、功能或组件转变为一个可重用的界面组件,并在您的应用中共享它。这样可以更轻松地协作,并加快开发速度。

了解更多

将应用拆分成组件,使应用开发更轻松,并享受您想要的工作流带来的最棒体验。

微前端架构
设计系统(https://medium.com/how-we-build-our-design-system-15713a1f1833)
代码共享与重用

组件复用与共享

单一代码库
更多信息
构建微前端以加快和扩展我们的 web 开发流程
我们如何构建组件设计体系以标准化和扩展我们的界面开发工作
如何在不同项目中复用React组件最终,你为应用程序中的新闻通讯创建了一个令人满意的输入字段,对此感到非常满意。
5 大方法构建 React 单库构建一个生产级的 React 单库:从快速构建到代码共享和依赖管理,一应俱全。blog.bitsrc.io
如何使用 Bit 创建可组合的 React 应用程序 本指南将教你如何使用 Bit 构建和部署一个完整的可组合 React 应用程序。更多详情,请访问 bit.cloud
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消