#优质博文 #node #JavaScript #TypeScript #Docker #Tools
Node Weekly #586 - July 15, 2025
Node Weekly #586 - July 15, 2025
AI 摘要:本期 Node Weekly 聚焦 Node.js 最新版本更新、社区讨论以及相关技术进展。Node.js v24.4.0 发布,带来了新的功能和安全更新提示;社区正在讨论是否将 Node.js 改为年度大版本发布并缩短 LTS 周期;TypeScript 5.9 Beta 引入了新功能如 import defer;此外,还涵盖了 Docker 部署最佳实践、性能差距分析、JavaScript 现代模式问题,以及一系列实用工具和库的更新,旨在帮助开发者提升效率和代码质量。
1. Node.js 更新与公告:
• Node v24.4.0 (Current) 发布:新增 --watch-kill-signal 功能,允许指定重启进程时的信号;spawn 和 spawnSync 支持权限模型标志传播;包含常规 V8 和依赖项更新。Node 团队还预告即将发布 v24.x、22.x 和 20.x 版本以解决安全问题。
• Node.js 年度大版本发布提案:社区讨论是否将 Node.js 改为每年一次大版本发布,并将偶数版本 LTS 周期从 30 个月缩短至 24 个月,欢迎社区反馈。
• Node.js v18 支持延长:尽管 v18 已于 2025 年 4 月停止支持,但 Canonical 宣布 Ubuntu Pro 用户将获得支持至 2032 年。
2. 社区与安全动态:
• Node-API 支持 React Native:Callstack 宣布为 React Native 引入 Node-API 支持,扩展跨平台原生代码编写和共享的可能性。
• TypeScript 5.9 Beta 发布:引入 import defer 支持,以及新的 node20 模式(类似 nodenext,但目标为 ES2023);透露 Go 驱动的 TypeScript 原生端口将在 TypeScript 7 中可用。
• TC39 全会总结:Igalia 团队分享了最新 TC39 全体会议的详细摘要,其中包含有关 ECMAScript 发展的有趣花絮。。
• 安全威胁:朝鲜“威胁行为者”部署了 67 个恶意 npm 包,Kirill Boychenko 详细解释了这些包的运作机制。
• Node 版本管理器性能差距:Pavel Romanov 指出不同 Node 版本管理器可能导致 shell 启动速度相差 500 倍,但对大多数用户影响不大。
• JavaScript 作用域提升问题:Parcel 创建者 Devon Govett 认为作用域提升与现代 JS 模式冲突。
• 使用 Array.fromAsync() 的现代异步迭代:Matt Smith 介绍 Array.fromAsync() 的用法。
• 类型化查询构建器对比:Guillaume Billey 比较了 Kysely 和 Drizzle 两种工具。
3. 工具与库推荐:
• Necord:基于 Nest 和 Discord.js 的 Discord 机器人开发框架,易于部署机器人功能。
• Upyo:跨运行时邮件发送库,支持 SMTP 和 HTTP(如 SendGrid、Amazon SES)提供统一类型安全的 API。
• Rewire 9.0:专注于 CommonJS 的单元测试猴子补丁工具,方便注入 mock 和检查私有变量。
• Envalid 8.1:环境变量验证工具,确保程序运行时依赖项齐全。
• cRonstrue 3.0:将 Cron 表达式转换为自然语言,支持约 30 种语言环境。
• 其他更新:包括 ESLint v9.31.0、Serverless Express 4.17、NATS.js 3.1、OpenAI Node 5.9 等工具和库的最新版本信息。
4. 生态系统动态:
• JavaScript Date 类测试:通过趣味测验了解 Date 类的解析机制。 #趣站
• ANSI.tools:在线工具,用于分析 ANSI 转义码和常用代码查询。
• 10 亿行挑战:Tae Kim 分享如何在 Bun 中处理 10 亿行文件,耗时不到 10 秒。
• Nginx 的 njs 模块升级:从仅支持 ES5 升级至使用 QuickJS,支持完整的 ES2023 功能。