尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Node.js 18.4.0 (Current) 发布解析:Web Crypto 新增 CFRG 曲线、dns family 字符串支持与发布产物校验指南

发布时间:2026/9/18 23:08:02

资讯中心
01
ARTICLE

Node.js 18.4.0 (Current) 发布解析:Web Crypto 新增 CFRG 曲线、dns family 字符串支持与发布产物校验指南

Node.js 18.4.0 (Current) 发布解析:Web Crypto 新增 CFRG 曲线、dns family 字符串支持与发布产物校验指南
Node.js 18.4.0 (Current) 发布解析Web Crypto 新增 CFRG 曲线、dns family 字符串支持与发布产物校验指南【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org本篇技术指南围绕 Node.js 官方发布记录 v18.4.0.md 展开系统梳理该版本在 cryptoWeb Crypto API 引入 CFRG 曲线、dnsfamily选项支持IPv4/IPv6与 report进程报告补充堆信息三大模块的 SEMVER-MINOR 级变更并完整呈现 95 项提交、各平台安装产物与 SHASUMS 校验值。同时结合 nodejs.org 网站仓库的发布脚本与博客渲染管线说明这类发布说明是如何从 changelog、SHASUMS 等数据自动生成并被博客系统消费的帮助你理解 Node.js 版本发布的全链路以及如何安全地安装、校验 v18.4.0。一、版本发布信息与定位v18.4.0 发布于 2022-06-16属于 Node.js 18 主线Current的第四次次要版本官方发布说明的 frontmatter 记录了以下元信息字段值date2022-06-16T13:50:46.303ZcategoryreleasetitleNode.js 18.4.0 (Current)layoutblog-postauthorDanielle Adams标题中的(Current)表示该版本处于 Current 阶段尚未进入 LTS发布说明中的(SEMVER-MINOR)前缀表示向后兼容的新功能变更。该版本共包含 3 项 SEMVER-MINOR 变更全部集中在crypto、dns与report三个模块。二、核心变更一Web Crypto API 引入 CFRG 曲线crypto这是本版本最值得关注的功能性变更包含一正一反两项改动新增 CFRG 曲线支持SEMVER-MINORPR #42507Filip SkokanWeb Crypto API 新增 CFRGCryptographic Forum Research Group曲线系列即 X25519、X448、Ed25519 与 Ed448 四条现代椭圆曲线。这意味着在 Node.js 中使用 Web Crypto API 时可以基于这些曲线执行密钥生成、导入导出等操作为crypto.subtle家族补充了现代、高效的椭圆曲线密码学能力。移除 Node.js 特有的 webcrypto 扩展SEMVER-MINORPR #43310Filip Skokan为对齐 Web 标准移除了此前 Node.js 在 Web Crypto 实现中加入的非标准扩展避免与浏览器行为产生分歧。围绕这两项功能本版本还合入了三条配套修复PR #43404、#43405、#43346均由 Filip Skokan 提交修复 cfrg 裸公钥raw public key的导入问题为 Web Crypto EC 裸公钥导入补充测试修复 Web Crypto 中 JWK 格式 EC 与 OKP 导入时的crv校验。实战提示如果你正在使用crypto.subtle.importKey、crypto.subtle.generateKey等 API 并依赖 Node.js 特有扩展升级到 v18.4.0 后建议回归测试而希望使用 Ed25519/X25519 等曲线做现代签名与密钥协商的开发者可以直接在 Web Crypto API 中选用对应算法名。三、核心变更二dns 模块family选项支持IPv4/IPv6SEMVER-MINORPR #43054dns 模块的查询 API如dns.lookup中用于指定地址族的family选项此前只能接受数字如4、6、0本次变更Antoine du HamelPR #43054使其同时接受字符串形式import { lookup } from node:dns; // 数字形式原有写法 lookup(example.com, { family: 4 }, (err, address) console.log(address)); // 字符串形式v18.4.0 新增 lookup(example.com, { family: IPv4 }, (err, address) console.log(address)); lookup(example.com, { family: IPv6 }, (err, address) console.log(address));这一改动降低了配置驱动场景下的心智负担——当 DNS 配置来自配置文件或环境变量时可以直接使用与协议名一致的字符串无需再做一次字符串到数字的映射转换。四、核心变更三进程报告report补充更多堆信息SEMVER-MINORPR #43116由 theanarkh 提交的 PR #43116 为进程诊断报告process report增加了更多堆heap相关信息。Node.js 的诊断报告可以通过--report-on-fatalerror、--report-on-uncaught-exception等启动参数或process.report编程接口触发报告中包含 JavaScript 堆与原生堆的统计信息。本次更新让报告在排查内存增长、堆溢出类问题时能提供更细粒度的数据例如更完整的堆容量与使用情况字段帮助定位 OOM 与内存泄漏。五、依赖与工具链更新v18.4.0 同步升级了三个内置依赖依赖版本说明npm8.12.1随发行版内置的包管理器升级PR #43301Corepack0.11.2Node.js 自带的包管理器版本管理工具升级PR #43402undici5.5.1内置 HTTP 客户端库升级作为fetch等 Web API 的底层实现PR #43412其中 undici 是 Node.js 内置fetch、WebSocket等标准 Web API 的底层依赖其升级通常会带来 HTTP 行为与稳定性方面的改进。六、提交全景按模块梳理 95 项变更v18.4.0 共包含 95 项提交覆盖运行时核心模块、文档与工具链。除上述三大 Notable Changes 外值得关注的还有内部性能与内存优化util新增内部常量kEmptyObjectPR #43159并在 async_hooks、child_process、cluster、crypto、events、fs、http、http2、https、lib、perf_hooks、readline、stream、test_runner、timers、tls、vm、wasi、worker 等二十余个模块中统一替换空对象字面量减少原型污染面并提升一致性tls修复convertALPNProtocols()的性能回退PR #43250src重构ByteSource并修复内存泄漏PR #43202。事件与异步行为修复events.once修复添加 abort 监听器的问题PR #43373readline修复question方法的栈溢出PR #43320perf_hooks修复被timerify包装的函数无法正确工作的问题PR #43330。安全加固工具新增avoid-prototype-pollutionlint 规则PR #43308并在工具链与文档生成中为创建 Proxy 添加原型污染防护PR #43391。其他增强repl自动补全改为大小写不敏感PR #41632fs/promises导出常量PR #43177net,dns将hasObserver移出性能函数PR #43217。完整的 95 项提交按模块分组如下格式提交哈希 / 变更说明 / 作者 / PRcrypto702bfa0b7casync_hooks使用kEmptyObjectLiviaMedeirosPR #43159f7c4015fd8bootstrap整合全局属性定义Chengzhong WuPR #433578d892f5259buildvcbuild.bat 增加 nonpm 与 nocorepack 选项Darshan SenPR #432194109ddc005child_process使用kEmptyObjectLiviaMedeirosPR #431597b5cb14f0ccluster使用kEmptyObjectLiviaMedeirosPR #431599f1de2c005crypto修复 cfrg 裸公钥导入Filip SkokanPR #434047f02e22998crypto测试 WebCrypto EC 裸公钥导入Filip SkokanPR #434050a075cb548crypto修复 JWK EC/OKP 导入的 crv 校验Filip SkokanPR #43346df0903c8e8crypto使用kEmptyObjectLiviaMedeirosPR #431596d0053345eSEMVER-MINORcrypto移除 Node.js 特有 webcrypto 扩展Filip SkokanPR #4331028c034d6b5SEMVER-MINORcryptoWeb Crypto API 新增 CFRG 曲线Filip SkokanPR #42507fe7fd85109deps更新 Corepack 至 0.11.2Maël NisonPR #43402517f17b214deps更新 undici 至 5.5.1Node.js GitHub BotPR #43412f4c830fbe4deps升级 npm 至 8.12.1npm CLI robotPR #433010bb84b09a5SEMVER-MINORdnsfamily接受IPv4/IPv6Antoine du HamelPR #43054f91babe494doc针对 12 EOL 更新 packages 文档Guy BedfordPR #43375066f963ec1doc新增如何更新 cjs-module-lexer 的文档Michael DawsonPR #4325536e5684ae0doc澄清 deps/icu-small 的使用Michael DawsonPR #43287b9634e7ef3doc从诊断分级清单移除 llnodeTony GorezPR #432894caeb10e7bdoc从诊断分级清单移除 ETWTony GorezPR #4329541955e5ce5docreport 文档使用牛津逗号Tobias NießenPR #43394e30d4c1cb0doc补充 fspromises mkdir 示例Tierney CyrenPR #40843adec5a929doc新增 F3n67u 为 triagerFeng YuPR #43350cc3505b192doc修正 globals.md 拼写Daeyeon JeongPR #43365052c8eaf6adocwebstreams 文档使用牛津逗号Tobias NießenPR #43353b824a0b7d0doc修正 esm.md 中的 specifier 示例hiroki osamePR #43351d558b3c028docglossary 新增 undiciF3n67uPR #43327f9ad98f5cbdocpull request 指南的 glossary 链接改为 node 官方文档Feng YuPR #4331802944a6783doc修正 util.parseArgs 使用示例中的拼写Michael FicarraPR #43332f2bc6a3f71doc改进 TZ 的描述Tobias NießenPR #433349335ea6c35docnet 文档使用牛津逗号Tobias NießenPR #4333505f38c6c3edoc阐明 Symbol.for 比较结果Kohei UenoPR #43309c9aed9de9fdocstream API 文档补充缺失的 requireFeng YuPR #43237f3188c1c9cdocglossary.md 新增 CIGTMFeng YuPR #43316c572d2d115docpull request 文档使用牛津逗号Feng YuPR #433198a4e1fa002docESM 文档使用牛津逗号Tobias NießenPR #43322fff0560a66doc将 CDT 提升至 tier 3Tony GorezPR #432907d0f6da97fdoc修复 pull-requests.md 中的 chromium 文档链接rikapoPR #432654674b0d2a5doc修复 BUILDING.md 的 404 链接Feng YuPR #43234ee392c5c0bdoc更新 CHANGELOG_V18.mdFilip SkokanPR #432985a3a2a197fdoc为 nodejs/crypto 的 CC 列表新增 src/cryptoTobias NießenPR #4328669ce50396cdocconsole 文档使用牛津逗号Tobias NießenPR #432570c5092c51cevents修复 events.once 添加 abort 监听器Daeyeon JeongPR #43373fda2105481events使用kEmptyObjectLiviaMedeirosPR #4315963bf49b143fs使用kEmptyObjectLiviaMedeirosPR #431599b764531b9fs从fs/promises导出常量Feng YuPR #43177a4409f85f8http使用kEmptyObjectLiviaMedeirosPR #431592ffd54105ahttp2使用kEmptyObjectLiviaMedeirosPR #43159b468b8fe51https使用kEmptyObjectLiviaMedeirosPR #43159d2a98dc6cfinspector补充缺失的初始化Michael DawsonPR #432543b2f7eed39lib多处使用kEmptyObjectLiviaMedeirosPR #431594a9511d971lib为 promisified 方法命名LiviaMedeirosPR #43218b8644606eblib属性描述符使用 null 原型对象Antoine du HamelPR #4327064edd6cbc3meta将 collaborator 移至 emeritusNode.js GitHub BotPR #43399b05cea57bameta更新 AUTHORSNode.js GitHub BotPR #43387a8ecec57e3meta将 collaborator 移至 emeritusNode.js GitHub BotPR #4318360dc36244ameta更新 AUTHORSNode.js GitHub BotPR #433129803b82ac7net,dns将 hasObserver 移出性能函数theanarkhPR #43217112518fb1dperf_hooks修复 timerify 包装函数的问题Kohei UenoPR #43330a3310d13bfperf_hooks使用kEmptyObjectLiviaMedeirosPR #431597e8a00a26dreadline修复 question 栈溢出Eugene ChapkoPR #433205e98cacf77readline使用kEmptyObjectLiviaMedeirosPR #4315966d956ca49repl自动补全改为大小写不敏感Sergey PetushkovPR #41632201f3d7f56SEMVER-MINORreport进程报告补充更多堆信息theanarkhPR #43116a0568409b6src修复 U000B 的 JSON 工具转义Chengzhong WuPR #43206931ecfa033src修复内存泄漏并重构ByteSourceTobias NießenPR #432025e65c1f3dasrc传达 StreamPipe 构造期间的潜在异常Darshan SenPR #43240b200a5ff67stream使用kEmptyObjectLiviaMedeirosPR #431591cc1a57cdbtest移除 test-util-inspect.js 中未使用的参数Colin IhrigPR #4339542c2115a82test标记 test_buffer/test_finalizer 为 flakyMichael DawsonPR #4341471802c32d0test修复 address in use 错误Caleb EverettPR #43199e1b8c85a7atest新增短选项后紧跟其值的测试Kohei UenoPR #43358f8d26c6011test修复common.mustNotCall错误信息Antoine du HamelPR #4291718fffe6108test将 then 改写为 async/awaitMeek SimbulePR #43292acd96d80ebtestcommon.getArrayBufferViews()支持BigIntLiviaMedeirosPR #43235e576a7fa50test_runner使用kEmptyObjectLiviaMedeirosPR #43159fecad7a3a5timers使用kEmptyObjectLiviaMedeirosPR #43159e31baca76atls使用kEmptyObjectLiviaMedeirosPR #431597f8f61a749tls修复convertALPNProtocols()性能回退LiviaMedeirosPR #43250ac9599a718tools将不安全的 string/regex primordials 报告为 lint 错误Antoine du HamelPR #43393b69d874592tools修复 GHA 上 create-or-update-pull-request-action 的哈希Antoine du HamelPR #43378cf8a115983tools新增 avoid-prototype-pollution lint 规则Antoine du HamelPR #433088c0fe1e184tools修复 find-inactive actionsLiviaMedeirosPR #433777f45d69f83tools更新 lint-md-dependencies 至 rollup2.75.5Node.js GitHub BotPR #43313d5d0f01c5atools更新 eslint 至 8.17.0Node.js GitHub BotPR #43314f598fe1585tools外部 actions 改用哈希而非标签Antoine du HamelPR #4328410f79947d9tools更新 codecov/codecov-action 版本Antoine du HamelPR #43297f93848fa50tools更新 lint-md-dependencies 至 rollup2.75.3Node.js GitHub BotPR #43261b3d7dc1de8tools更新 clang-format 1.7.0 至 1.8.0Darshan SenPR #43241812140c65atools,doc创建 Proxy 时增加原型污染防护Antoine du HamelPR #4339156b8cc5cefutil冻结kEnumerablePropertyLiviaMedeirosPR #43390b187d55b6dutilinternal/util 新增kEmptyObjectLiviaMedeirosPR #43159024b396275vm使用kEmptyObjectLiviaMedeirosPR #431597fc432fa35wasi使用kEmptyObjectLiviaMedeirosPR #4315944b65d0ca7worker使用kEmptyObjectLiviaMedeirosPR #43159从提交分布看kEmptyObject的推广PR #43159贯穿十余个模块是本次版本内部一致性的主要清理动作文档类提交数量最多反映了 Node.js 项目对 API 文档严谨性的持续投入。七、发布产物与平台矩阵v18.4.0 官方发布了以下 16 类产物均位于官方发行目录v18.4.0/下文件名如下产物类型文件/路径Windows 32-bit 安装器node-v18.4.0-x86.msiWindows 64-bit 安装器node-v18.4.0-x64.msiWindows 32-bit 二进制win-x86/node.exeWindows 64-bit 二进制win-x64/node.exemacOS 64-bit 安装器node-v18.4.0.pkgmacOS Apple Silicon 64-bit 二进制node-v18.4.0-darwin-arm64.tar.gzmacOS Intel 64-bit 二进制node-v18.4.0-darwin-x64.tar.gzLinux 64-bit 二进制node-v18.4.0-linux-x64.tar.xzLinux PPC LE 64-bit 二进制node-v18.4.0-linux-ppc64le.tar.xzLinux s390x 64-bit 二进制node-v18.4.0-linux-s390x.tar.xzAIX 64-bit 二进制node-v18.4.0-aix-ppc64.tar.gzARMv7 32-bit 二进制node-v18.4.0-linux-armv7l.tar.xzARMv8 64-bit 二进制node-v18.4.0-linux-arm64.tar.xz源码包node-v18.4.0.tar.gz其他发行文件发行目录下的其余文件headers、pdb 等文档v18.4.0 对应的 API 文档产物与版本范围的对应关系可以从网站仓库的 downloadsTable.mjs 与 constants.json 中反推印证macOS Apple Siliconarm64产物自 16.0.0起提供因此 v18.4.0 包含darwin-arm64二进制Windows ARM64 安装器与二进制自 19.9.0起提供所以 v18.4.0 的产物列表中没有Windows ARM 项Windows x8632 位产物在 23.0.0后被移除Linux ARMv7 在 24.0.0后被移除v18.4.0 仍完整保留这两类。Linux 各架构x64、arm64、armv7l、ppc64le、s390x与 AIXppc64的兼容区间同样记录在 constants.json 中可作为产物可用性判断的参考依据。八、使用 SHASUMS 校验下载完整性发布说明末尾附带了SHASUMS256.txt.asc的完整内容——这是一份PGP 签名包裹的 SHA-256 校验清单用于验证所有发行产物未被篡改。完整校验值如下文件SHA-256node-v18.4.0-aix-ppc64.tar.gza403ee671a261d4e52694a81b55ec01aad70e955afae2680eab2e4095260e601node-v18.4.0-darwin-arm64.tar.gz90850d1ff13ef07e5ae2c8c2f29c29bd2654308def2776eb73be0f7aa6a4f9bdnode-v18.4.0-darwin-arm64.tar.xz361bb9bb174574e87b2116e600f96e6afc5bdcda1fe1d7e191f5e497c23ae56bnode-v18.4.0-darwin-x64.tar.gz9d97b2efc0b7f1d0877c319f6c1b3da24c8c4218d4c4eab7d6ebee0d95f69701node-v18.4.0-darwin-x64.tar.xz1ef406671732c589d923fcb3fff51dfd9ed45a1429037d87147641b0b013ede6node-v18.4.0-headers.tar.gze8ff60b73c9d68f02e1a5b1a008c82ae1522dd197880ff138d72b6e659595e3dnode-v18.4.0-headers.tar.xz4a7865a23ceb8ca74cd8f6c9c12481e66a046abb779d454ce7d1385a753c6138node-v18.4.0-linux-arm64.tar.gz6926ab0721aee65b6a00f4858a307d736de5f48a511d7e5c6182f87887f76188node-v18.4.0-linux-arm64.tar.xz86c82075e9b651b2185c3cede479255fc25d23dc4e28aae14f83ddf0287fb85enode-v18.4.0-linux-armv7l.tar.gzf5547aea83f451b94e70cb9d5f2042e055cc63c130feaf35e39e0ade85b372b6node-v18.4.0-linux-armv7l.tar.xz0571be25d3dd0271d88d7168dac5d93c423476d612a56f1c90adf8cdf0bfb5abnode-v18.4.0-linux-ppc64le.tar.gz8a7b20fed6286a8755bb49590aab592c86fdf244c494843d0cbbfe34912f01denode-v18.4.0-linux-ppc64le.tar.xzf78ead16935712b360e1e3370773c2b84dfe11cbdc811ddf9dbe7b376097154cnode-v18.4.0-linux-s390x.tar.gzfbe52695dc35aede252b94f455ca9dad172c627144c805d57340b7bf624c6b63node-v18.4.0-linux-s390x.tar.xz558f807ccc156c52c75f556df80d1615811ad17d987c7da2dfce3719fecd5902node-v18.4.0-linux-x64.tar.gz4e3f5c72ec735aa23d52042be61e32e7279d26d7f05ebb5571c410e81d10c9a3node-v18.4.0-linux-x64.tar.xz68c3749b9b53bb07a21f91d26be5f231012c5364bbf0b3f14015ae38d02d5344node-v18.4.0.pkg62800c6d694745da4c0f668f435f3e019cc3aa31efd152a5ab6f71f36d1e6938node-v18.4.0.tar.gzc7c67252175b7f4e1521285bf1a1044dffce6103df9a54f80f0d8287f69e01d7node-v18.4.0.tar.xz94d6f19a970361f8c8ad17450604095389f51ca6a00dcde59c21f373e95abbb5node-v18.4.0-win-x64.7z10a6f83ac36a20607d186c074951c8800525566ff79b97979ea0b4adaab836d5node-v18.4.0-win-x64.zipa610ab5416b637c7ef0a7923e9100c1c0bd617fa156ce2ca1d01cec49402d982node-v18.4.0-win-x86.7zaefd03e0015c8954bd5c118e0b1fe0d2e0a4e0c93322816f05bbd4b196aae00fnode-v18.4.0-win-x86.zipcdfd078ab3f00a3ed906a339afce3201063c6fc899736022cfcbb9c668cd4661node-v18.4.0-x64.msib79cbf490d581245061d6462430450df16731901a022c83daafbf9a920bafc6enode-v18.4.0-x86.msi6a13d5f7de06a3d00a6deb84bbbfa6c591ab45839609a375c12215a86ef9ae9cwin-x64/node.exeac77cb6589f4bc7665e1d3efd3881e88952bac322f818121e7d2a23ce01452c3win-x64/node.lib8dd17e07475a098640979532b8ad77896812605b13c4d715a8aa8804833494b4win-x64/node_pdb.7z15c763c260901bb32d41068eda6da10a2183563f4b43354b6d6b1c1958865aa6win-x64/node_pdb.zip803a757a1b8a796a4ff4357ef895cd6b7308b36c859cb44af91119a92d7ea1d2win-x86/node.exe8cc8f20a2668a8da6ed99ccc15e000ddc3a9cd4b2f28f3f9148be1c1ec4680f8win-x86/node.lib333bd4a83c23547ac8f5f250e6ff171e03919cfa3293b438de0e0baa5976767dwin-x86/node_pdb.7z42c553dc26f0c72bd8de873f9ec1b8910afa46d3f45fd341eaa4d2c6eded2d3fwin-x86/node_pdb.zipcca573137e470606f8c82b3e5b11e8035703d9772f5319bcabf9a931a38ccaa9校验操作下载目标产物后在终端中计算其 SHA-256 并与上表比对# Linux/macOS shasum -a 256 node-v18.4.0-linux-x64.tar.xz # 或使用 GNU coreutils sha256sum node-v18.4.0-linux-x64.tar.xz发布说明中附带的 PGP 签名块表明该校验清单由 Node.js 发行签名密钥签发建议对校验值文件本身做 PGP 验签后再与本地计算值比对以形成签名验证 哈希比对的双重信任链。九、仓库视角这类发布说明是如何生成与渲染的v18.4.0.md 这类 release 分类博客并非纯手工撰写nodejs.org 网站仓库内置了一套半自动化的生成与渲染链路可以从源码层面还原其生产过程。9.1 发布说明模板与生成脚本发布模板 template.hbs 定义了发布说明的骨架包含 frontmatterdate、category、title、layout、author、{{changelog}}主体、下载文件列表与{{shasums}}三大部分与 v18.4.0.md 的实际结构完全一致。发布生成脚本 index.mjs 以node index.mjs [version]方式运行省略版本号时自动从发行索引拉取最新版其流水线为fetchDocs并行抓取 changelog 正文、作者、版本策略、SHASUMS 与下载产物可用性五类数据fetchChangelog从 CHANGELOG 中按a id版本号锚点正则截取对应版本的完整变更段落并把*列表项替换为-fetchAuthor/fetchVersionPolicy从 changelog 头部如## 2015-10-07, Version 4.2.0 Argon (LTS), jasnell解析作者登录名与版本策略Current/LTS再通过 GitHub 用户 API 换取显示名fetchShasums抓取SHASUMS256.txt.asc失败时写入[INSERT SHASUMS HERE]占位符verifyDownloads对 downloadsTable.mjs 生成的全部下载 URL 逐个发起 HEAD 请求失败标记为*Coming soon*renderPost→formatPost→writeToFile用 Handlebars 渲染、prettier 格式化最终写入pages/en/blog/release/vX.md重复生成时默认报错可用-f/--force强制覆盖。也就是说v18.4.0.md 中整齐的提交列表、平台产物清单与 SHASUMS 代码块都是由该脚本从上游数据自动拼装、人工复核后落盘的。9.2 下载产物表的版本门控逻辑downloadsTable.mjs 中的resolveDownloads使用 semver 判断对产物列表做版本门控例如semVer.satisfies(version, 16.0.0)时过滤 macOS Apple Silicon 项 19.9.0时过滤 Windows ARM 项。这从实现上解释了为什么 v18.4.0 的产物清单恰好是 16 项而非全量。9.3 博客数据与页面渲染发布说明写好后由 博客数据生成脚本 以流式方式逐行读取每个 markdown 文件的 frontmatter读到两个---分隔符即停止避免解析数千个大文件的正文提取title、author、date、category等字段并构造categories如[release, year-2022, all]与 slug如/blog/release/v18.4.0按日期倒序输出为博客索引数据。最终页面由 博客动态路由 渲染getMarkdownContext读取blog/下的 MDX/Markdown 内容依据 frontmatter 的layout: blog-post选择对应布局路由声明了dynamic force-static构建期静态化与revalidate 300每 5 分钟增量再验证保证发布后数据能及时刷新。列表页上的每篇发布说明则通过 BlogPostCard 展示标题、分类、作者头像组与格式化时间。十、结语Node.js v18.4.0 是一次功能增量 一致性清理并行的 Current 版本Web Crypto API 的 CFRG 曲线补齐了现代椭圆曲线能力dns的family字符串支持简化了配置映射进程报告新增的堆信息增强了内存问题诊断能力同时以kEmptyObject为代表的大规模内部清理为后续版本的稳定性与性能奠定了基础。安装该版本后建议优先在crypto.subtle相关代码上做回归验证并按上文 SHASUMS 校验流程确认下载产物完整性。若想深入了解发布说明的生成细节可继续阅读仓库中的 发布生成脚本、发布模板 与 博客数据生成脚本。【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。