Node.js 19 新 watch 模式和其他功能有哪些?
点击图片,查看图书详情
这是一个小调整,但 watch 模式为您的开发过程增添了便利。
2022 年 10 月,Node.js 发布了第 19 个版本。它是在 Node.js v.18 发布六个月后发布的,该版本带来重大升级。
版本查看:
linuxmi@ linuxmi/home/linuxmi/
⚡ node -v
v18. 3.0
Node.js 19 的一个显著特性是新的实验性 watch 模式。这使您无需重新启动即可对服务器进行更改。
在 Node.js 19 之前,watch 模式只能使用第三方库。下面开始了解如何使用 watch 模式并探索版本 19 中 Node.js 的其他更新。
相关链接:
Node 的新 watch 模式
Node.js 19 引入了实验性的 --watch标志,它会在检测到指定文件发生变化时重新启动Node.js 服务器。您之前可以使用名为 nodemon 的第三方库来执行此操作,但更新通过将其功能添加到 Node.js 来消除对依赖项的需求。
要使用 --watch 标志重新启动 Node.js 服务器,请运行带有 --watch 标志的 node 命令,后跟要在 Node 检测到更改时重新启动的文件的名称。
例如,将此代码块视为 server.js 文件:
// server.js
constexpress = require( "express");
constapp = express;
constPORT = 6060;
app.listen(PORT, => console.log( `App listening on port: ${PORT}` ));
要查看此文件的更改,并在更改发生时重新启动服务器,请在终端上运行此命令:
node--watch server
该命令将监视您的 server.js 文件并在检测到文件中所做的更改时重新启动 Node.js 服务器。
值得注意的是,此功能仍处于试验阶段,这意味着您在使用 --watch标志重新启动服务器时可能会遇到问题。
其他升级和修复
Node.js 19 附带的其他改进和修复包括以下内容。
默认情况下
。此选项指示服务器保持连接打开并将其重新用于后续请求。
在 Node.js 19 中, keepAlive 选项默认设置为 true。此添加将显著减少建立新连接的开销。
WebCrypto API 的稳定性
WebCrypto API 是 Node.js对 Web Crypto API 标准的实现。使用 Node.js 19,WebCrypto 实现现已稳定,但 Ed25519、 Ed448、 X25519 和 X448 算法除外。
您可以使用 globalThis 模块或 node:Node.js 18 引入的前缀来访问此 API ,以区分核心 Node.js 模块与第三方库。
例如:
// node: prefixconstcrypto = require( "node:crypto");
// globalThisconstwebcrypt = globalThis.crypto;
自定义 ESM 分辨率调整
Node.js 19 删除了之前实验性的 --experimental-specifier-resolution 标志。这为使用包说明符定位文件提供了实验性支持,类似于 ECMA 导入模块的方式。
Node.js 删除了这个标志,因为您可以使用自定义加载器复制它们的功能。您可以使用自定义加载器来支持更多模块格式或在加载之前进一步处理模块,因为它们允许您提供用于加载和处理模块的独特逻辑。
删除 DTrace/SystemTap/ETW 支持
DTrace、SystemTap 和 ETW(Windows 事件跟踪)是提供动态跟踪和运行程序分析的模块。最初在 Node.js 中,您可以使用它们来收集有关应用程序活动的数据,包括性能指标、错误和其他可能的运行时事件。
在 Node.js 19 中,Node.js 取消了对 DTrace、SystemTap 和 ETW 的支持,因为维护和保持这些模块最新所涉及的复杂性尚不值得。因此,为了优先考虑他们的资源,他们放弃了对他们的支持。
升级到 Node.js 19
Node.js 19 引入了各种值得您的应用程序考虑的功能和改进,包括新的 watch 模式,以及上面讨论的其他内容。要升级到 Node.js 19,请访问官方网站并下载当前版本。
Linux下安装升级:
:如何在 Ubuntu 20.04/22.04 上安装 Node 版本管理工具 nvm
来自:Linux迷
链接:
我告诉你msdn版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!