图片来源 freestocks 在 Unsplash,图片由作者处理。
像往常一样,每当新的运行时版本的发行说明发布时,我们会收到许多关于内部透明细节的更新(至少对我们这些运行时的用户来说)。
不过,在 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