#优质博文 #前端 #node #新动态
Node Weekly #577
Node Weekly #577
AI 摘要:本期 Node Weekly 聚焦 Node.js 24 发布、AI Agent 开发、JavaScript 生态工具更新(如 Bun、Deno、Llama Stack),以及社区动态(如 Node.js Next 10 调查)等。
1. 社区动态
• Node.js 24 发布 成为新的 Current 版本,替代 EOL 的 v18 和 v23,附带:npm 11、V8 13.6(支持 RegExp.escape、Float16Array 等)、默认暴露 URLPattern API、Undici 7。
• Llama Stack 应用:Meta 的 Llama Stack 是一组统一的 API,用于处理现代 LLM 驱动的堆栈的众多部分,支持 RAG(检索增强生成),Michael Dawson 提供实践指南。 #AI #RAG
• Node.js Next 10 调查:Linux Foundation 发起,征集未来十年 Node.js 发展方向意见。
• Redis 重新开源:v8.0 恢复开源许可。
• GSAP 免费:商业动画库 GSAP 全面开放免费使用。
• ECMAScript 提案:显式资源管理(Stage 3)已在 Chrome 134+ 和 Node 24 实现。
• npm 恶意软件:攻击者仿冒知名库名发布恶意包。
2. 运行时与工具更新
• Bun v1.2.12:增强 Node 兼容性、现在可以通过终端上的 Bun 将浏览器控制台日志流式传输回去。
• Deno 2.3:改进单二进制编译,支持 FFI、Node 原生附加组件和本地 npm 包。
• PGlite 0.3:基于 WASM 的 Postgres,可在浏览器或 Node 中运行。 #WASM
• Prisma v6.7:加速从 Rust 转向 TypeScript。
• SVGO 4.0(SVG 优化)、Jira.js(Jira API 封装)、RedisSMQ(Redis 消息队列)……
• Josh Ceau 的 Operator Lookup 网站使得 JavaScript 运算符查找变得容易,甚至可以找到您以前从未遇到过的运算符,例如 >>>=。
Red Hat Developer
Retrieval-augmented generation with Llama Stack and Node.js | Red Hat Developer
With Llama Stack being released earlier this year, we decided to look at how to implement key aspects of an AI application with Node.js and Llama Stack. This post covers retrieval-augmented generation
#优质博文 #前端 #新动态 #javascript #css #node
Web Weekly #158
author Stefan Judis
Web Weekly #158
AI 摘要:本期 Web Weekly 聚焦前端开发领域的新提案、工具优化与实用技巧,涵盖 Edge 团队的 ariaNotify() 和 console.context() 提案、Node.js 双包风险、CSS 新单位 lh 的应用,以及 Chrome 原生 CSS 轮播的可访问性分析。同时推荐了有趣的 CSS 全息效果、小众浏览器和 JavaScript Set 新方法等资源。
1. Edge 团队新提案
• document.ariaNotify() :简化无障碍通知的 DOM 操作,直接通过 JavaScript 触发屏幕阅读器提示。
• console.context() :提供日志分组、样式和过滤功能,优化调试体验。
2. Node.js 双包风险警告
• 官方建议仅发布一种模块格式(CJS 或 ESM),避免因混合格式导致的兼容性问题。
3. CSS 新特性与实践
• lh 单位:基于行高的垂直间距控制,提升视觉一致性。
• Chrome 原生 CSS 轮播:新增 scroll-marker-group 等属性,但当前可访问性不足(Sara 评估,她的结论是:他们还没有准备好,但你自己要多读一读)。
• 纯 CSS 全息效果:纯 CSS 实现,利用 mix-blend-mode 和 background-attachment 实现。 解释博客
4. JavaScript 更新
• JavaScript Set 新方法:difference()、intersection() 等集合操作。
• JavaScript 类中的静态初始化块 - 不久前,我了解到您可以将 "nameless static " 块放入 ECMAScript 类中。他们是做什么的?
• RegExp.escape():自动转义正则表达式特殊字符(Chromium 136+)。
5. 工具与资源推荐
• 小众浏览器:Vivaldi 及其他非主流选项。
• 自然语言日期解析库 wanasit/chrono
• Node.js 测试最佳实践指南 #测试
• MCP 服务器的集合 punkpeye/awesome-mcp-servers 。 #AI #MCP
6. 其他亮点
• 趣味网站:owlsintowels.org(猫头鹰主题)。
• 设计技巧:复杂曲线边框的 CSS 实现方案。
• My Three Strikes Rule for Blogging 第三次在对话中使用某个想法时,您必须将其写在博客上。 #技术写作
author Stefan Judis
Stefanjudis
Web Weekly #158
The `ariaNotify()` and `console.context()` proposals from the Edge team, Node.js dual package hazards and `lh` CSS unit use cases.
❤1
#优质博文 #前端 #node #javascript #新动态
Node Weekly #578
author Peter Cooper
Node Weekly #578
AI 摘要:本文是 Node Weekly 第 578 期的内容,发布时间为 2025 年 5 月 13 日,聚焦于 Node.js 和 JavaScript 生态系统的最新动态。文章涵盖了新工具和库的发布(如 Feedsmith 和 Hyparquet)、Node.js 版本更新(如 v24.0.1)、性能优化进展、以及 npm 包创建的最佳实践等内容。此外,还介绍了 JavaScript 相关工具和技术(如 k6 和 Mantine),并提供了多个实用库和资源的链接。编辑 Peter Cooper 提到将参加 Google I/O,newsletter 将暂停至 5 月 27 日。
1. 更新动态
• Node v24.0.1 发布:修复了 v24.0 中移除的 SlowBuffer 功能,因仍有流行包依赖此功能;同时 Lizz Parody 文章总结了 Node 24 的新特性。
• 性能优化动态:Node 性能专家 Yagiz Nizipli 正在改进 Node 的 HTTP 性能。
• 其他更新:Bun v1.2.13 提升了 Node.js 兼容性(如 worker_threads 支持);VS Code 新增对 Node 网络调试功能的支持;Node.js Next 10 调查仍在进行中,旨在帮助核心团队确定优先级。
2. 技术文章
• 创建现代 npm 包:Brian Clark 提供了一份 2025 年适用的分步指南,介绍创建 npm 包的最佳实践,内容近期已更新。 #工程化
• 文件系统路径与 URL:Dr. Axel Rauschmayer 探讨了在 Node 中处理文件系统路径和文件 URL 的方法。
3. 工具推荐
• Feedsmith:一个 Web 订阅解析和生成工具,支持 RSS、Atom、JSON Feed 等格式,解决了现有库的一些问题,尽管尚处于早期阶段,但核心功能已就绪。Jean-Philippe Monette 的成熟 Feed 库已经有十多年的历史了,如果您想要专注于 Feed 生成,它也刚刚进行了一次重大更新 (v5.0)
• PptxGenJS:一个成熟的库,用于用 JavaScript 创建 PowerPoint 演示文稿,支持图形、表格和其他典型的幻灯片对象等。
• ANSIS 4.0:一个支持多环境的 ANSI 颜色库,适用于终端、浏览器等,v4.0 带来重大更新。
• Hyparquet:无依赖的 JavaScript 库,用于解析 Parquet 文件格式,支持浏览器环境。
• jsdiff 8.0:用于文本差异比较的库,支持多种比较方式。
• Glob 11:JavaScript 中最准确且第二快的文件匹配库。
• 其他工具:包括 sqs-consumer、express-openapi-validator、OpenAI Node、dnt、cron-parser 和 Undici 等库的最新版本更新。
• k6 1.0:Grafana 推出的负载测试工具,支持用 JavaScript/TypeScript 编写脚本。
author Peter Cooper
GitHub
src: improve performance of http parser by anonrig · Pull Request #58288 · nodejs/node
Adds v8 fast api to almost all possible http parser methods.
Pending benchmarks.
Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1717/
cc @nodejs/p...
Pending benchmarks.
Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1717/
cc @nodejs/p...
#优质博文 #前端 #node #文件系统 #路径处理 #course
究极详细。
7 Working with file system paths and file URLs on Node.js
author Dr. Axel Rauschmayer
究极详细。
7 Working with file system paths and file URLs on Node.js
AI 摘要:本章节详细介绍了如何在 Node.js 中处理文件系统路径和文件 URL,涵盖了路径相关的功能和 API 的使用方法。
• 路径模块的导入:介绍了如何导入 node:path 模块,并说明了在某些情况下可以省略导入语句。
• 路径 API 的访问方式:列出了三种访问 Node.js 路径 API 的方法,并展示了平台特定版本的 API 使用示例。
• 路径解析:详细解释了 path.parse() 函数在不同平台(Windows 和 macOS)上的使用差异,展示了如何正确解析 Windows 路径。
• 路径分隔符和路径定界符:定义了路径分隔符和路径定界符的概念,并展示了当前平台的分隔符和定界符。
• 环境变量 PATH:展示了在不同操作系统(macOS 和 Windows)上的 PATH 变量的示例,解释了路径分隔符和定界符的使用。
• 当前工作目录(CWD):介绍了 process 全局变量的使用方法,展示了如何获取和设置 CWD,并说明了 CWD 在路径处理中的作用。
• 路径类型:详细解释了 Unix 和 Windows 系统中的绝对路径和相对路径的概念,并展示了如何使用 path.resolve() 解析相对路径。
• 重要目录的路径:介绍了 node:os 模块中的 os.homedir() 和 os.tmpdir() 函数,展示了如何获取用户主目录和临时文件目录的路径。
• 路径拼接:详细解释了 path.resolve() 和 path.join() 函数的使用方法和区别,并展示了如何使用这些函数拼接路径。
• 路径解析和规范化:展示了 path.resolve() 和 path.normalize() 函数的使用示例,并解释了它们的作用。
• 路径相对化:介绍了 path.relative() 函数的使用方法,展示了如何获取从源路径到目标路径的相对路径。
• 路径解析和格式化:详细解释了 path.parse() 和 path.format() 函数的使用方法,并展示了如何使用这些函数解析和格式化路径。
• 路径操作:介绍了 path.dirname() 和 path.isAbsolute() 函数的使用方法,并展示了它们的作用。
• 跨平台路径处理:讨论了如何在不同平台上使用相同的路径,并介绍了如何将路径存储为平台无关的数组。
• 路径匹配:介绍了 minimatch 模块的使用方法,展示了如何使用 glob 表达式匹配路径。
• URL 处理:详细解释了 URL 类的使用方法,展示了如何创建和操作 URL 对象。
• 文件路径与 URL 的转换:介绍了 url.fileURLToPath() 和 url.pathToFileURL() 函数的使用方法,并展示了如何在文件路径和 URL 之间进行转换。
• 模块入口点检测:介绍了如何在 CommonJS 和 ESM 模块中检测当前模块是否为入口点,并展示了相应的代码示例。
author Dr. Axel Rauschmayer
#优质博文 #前端 #node #新动态
⚡️ Node Weekly #579
author Peter Cooper
⚡️ Node Weekly #579
AI 摘要:本文是 Node Weekly 第 579 期(2025 年 5 月 27 日)的newsletter,涵盖了 Node.js 社区的最新动态、工具更新和技术文章。内容包括 Node.js 协作峰会的报告、TypeScript 原生预览版的发布、Glitch 平台停止托管服务的消息、Node.js 版本更新,以及一系列与 Node.js 相关的工具和资源。此外,还涉及 JavaScript 生态系统的其他热点话题,如 Deno 的发展现状和 JavaScript 30 周年纪念。
• Node.js 协作峰会报告:每年两次的峰会讨论了 CI 安全事件、Async Context、编译应用到可执行文件的能力提升、Undici、模块加载器钩子及与 Chrome DevTools 的更好集成。
• Node.js TSC 拒绝功能赏金计划:讨论了是否应设立正式的功能赏金计划以奖励特定功能开发,官方暂时否决了此提议。
• TypeScript 原生预览版发布:TypeScript 编译器移植到 Go 语言,速度提升 10 倍,支持原生编译和并发处理,用户可自行尝试。
• 简讯 (In Brief):
• Glitch 平台停止应用托管服务,未来方向不明。
• Astro 5.8 发布,不再支持 Node v18.20.8 之前的版本。
• Angular 20 即将发布,完全放弃 Node 18 支持。
• Node.js Next 10 调查仅剩三天。
• Node v24.1 (Current) 和 v22.16.0 (LTS) 发布,新增 node.config.json 支持。
• Seokho Song 撰写了关于成为最新 V8 提交者的文章。
• 技术文章:
• 探讨 Node.js 控制台文本样式的多种方法。
• 介绍 Node.js 内存管理中的 ArrayBuffer、TypedArray 和 Buffer。
• 讲解数组索引方法 at() 如何简化操作。
• 代码与工具 (Code & Tools):
• Google Gen AI SDK v1.1:支持 TypeScript 和 JavaScript,集成 Gemini API。
• Astra:新的 JavaScript 转 EXE 编译器,仅限 Windows。
• Defuddle:提取网页主要内容的工具,类似 Mozilla 的 Readability。
• express-generator-typescript:Express.js 和 TypeScript 应用生成器。
• 其他工具更新包括 Express Slow Down、exiftool-vendored、Slonik、Multer 等。
• JavaScript 生态其他动态:
• Deno 团队发布 JavaScript 30 周年历史时间线。
• Ryan Dahl 称有关 Deno 之死的报道被大大夸大了。
• ESLint 9.0 过渡回顾及问题总结。
• Socket 发现更多恶意 npm 包。
• 开发者对 Node、Go、Rust 等语言进行压力测试,Node 表现不错,但最终在巨大的内存压力下失败了。
author Peter Cooper
Seokho’s blog
Became a V8 committer
I got v8 committer status in this morning.
#优质博文 #前端 #javascript #node #php #工程化 #新动态 #tools
🤖 Node Weekly #580
🤖 Node Weekly #580
AI 摘要: 本期 Node Weekly 聚焦 Node.js 生态系统的最新动态与工具,涵盖了 PHP 与 Node.js 的集成、AI 技术在开发中的应用、以及多个实用工具和库的更新。文章详细介绍了 php-node 模块如何实现 PHP 应用在 Node 环境中的运行、多个 Node.js 相关工具如 ESLint、Bun 的新功能。此外,还包括了 JavaScript 领域的最新资讯,如 TC39 提案进展和 Temporal API 的潜力。
1. 简讯
• php-node:PHP 与 Node.js 的新型集成:介绍 php-node 作为 Node 的原生模块,允许在 Node 环境中运行 PHP 应用。应用场景:迁移遗留 PHP 应用、构建 PHP/JS 混合应用,或在 Node 应用中调用 PHP 功能(如 WordPress 集成)
• Joyee Cheung 分享关于 Node 中 CommonJS 与 ESM 桥接的演讲幻灯片。
• OpenJS 基金会现在是其旗下 40 多个 JavaScript 项目的 CNA,包括 ESLint、Express 和 Electron。
• SQLite-JS 扩展允许使用 JavaScript 编写自定义 SQLite 函数。
• DigitalOcean 推出 Node 驱动的 MCP 服务器,支持通过 AI 代理(如 Claude)管理托管应用。
2. 技术文章与教程
• 使用 Node.js 和 Llama Stack 实施 AI 保障措施: Llama Stack 是 Meta 用于在 Node、Python、Swift 或 Kotlin 中构建 AI 应用程序的框架。
• 在 Express 中管理功能标志 (Trunker):介绍 Trunker 作为 Express 中间件,用于实现功能标志管理。
• 使用可选链编写更可靠的 JavaScript:讲解可选链的使用及其优势。
• 构建 Linux Electron 应用:讨论 Electron 跨平台特性及 Linux 平台特定问题。
• Node.js 生产级日志记录 (Pino):介绍使用 Pino 进行高效日志记录。
3. 代码与工具
• qnm:CLI 工具,方便探索 node_modules,提供模糊搜索及空间占用分析功能。【感觉还是 antfu/node-modules-inspector 香】
• Zigar:在 Node 和 Electron 项目中使用 Zig(C/C++ 超集)代码。
• 🤖 OpenAI 客户端 5.x:从 Node 使用 OpenAI 模型 ——OpenAI 官方 JavaScript 库的最新版本,适用于其各种 API,现已支持其所有最新模型和实时 API( v5.0 更新日志 )。支持 Deno 和 Bun。
• Opossum 8.5:异步函数断路器,支持超时及错误阈值设置。
• Beachpatrol:CLI 工具,基于 Playwright 实现浏览器自动化,支持 macOS 和 Linux。作者:Sebastian Carlos。
• 其他工具更新:包括 ESLint v9.28.0(增强 TypeScript 支持)、Bun v1.2.15(新增安全审计工具)、Ink 6.0(支持 React 19)、pdf2html 4.0(用 Apache Tika 和 PDFBox 将 PDF 转换为 HTML)
4. JavaScript 领域动态
• TC39 第 108 次会议:多项提案进展,如 Seeded Pseudo-Random Numbers 进入 Stage 2,Error.isError 进入 Stage 4。
• Stack Overflow 年度开发者调查开启第 15 年。
• 探讨即将推出的 Temporal API,如何解决 JavaScript 中日期和时间处理问题。
• Sean Gillespie 正在思考高效 monorepo 的要素。
Platformatic Blog
Seamlessly Blend PHP with Node.js
@platformatic/php-node integrates PHP into Node.js apps for a unified developer experience
#优质博文 #AI #node #LlamaStack #css #安全
Implement AI safeguards with Node.js and Llama Stack
author Michael Dawson
Implement AI safeguards with Node.js and Llama Stack
AI 摘要: 本文详细介绍了如何使用 Node.js 和 Llama Stack 实现 AI 应用程序的安全机制(guardrails)。作为系列文章的第三部分,文章重点探讨了 Llama Stack 内置的安全工具 LlamaGuard 和 PromptGuard 的功能、设置和使用方法,旨在确保大型语言模型(LLM)在应用范围内的回答安全、准确且无偏见。通过具体的代码示例和配置步骤,作者展示了如何在 Node.js 环境中设置和运行 Llama Stack,并结合守卫机制过滤不安全内容和防止绕过安全措施的尝试。此外,文章还讨论了安全机制在节省 GPU 资源方面的额外优势。
1. 什么是守卫机制(Guardrails)?
• 守卫机制是大型语言模型(LLM)的安全措施,确保模型仅回答应用范围内的问题,并提供准确、无偏见的回答。
• 应用示例:防止保险报价应用中回答违法问题,或避免在保险审批中对某些群体产生偏见。
• Llama Stack 提供内置守卫机制,并支持注册自定义守卫提供者。
2. 内置守卫机制
• LlamaGuard:用于人类与 AI 对话,识别不安全内容(如暴力犯罪、性犯罪、仇恨、自残等 13 类内容),过滤人类问题和模型回答。
• PromptGuard:防御绕过安全机制的尝试(如“越狱”),与 LlamaGuard 互补,提升整体安全水平。
3. 设置 Llama Stack
• 描述了如何通过容器快速启动 Llama Stack 实例,使用 Ollama 服务大型语言模型。
• 提供了启动脚本,包含模型选择(如 Llama-3.1-8B-Instruct)和安全模型配置。
4. 运行 Llama Stack 实例
• 详细说明了容器配置和运行步骤,包括修改 run.yaml 文件以启用 PromptGuard。
• 解决 CPU 环境下运行 PromptGuard 的问题,通过修改容器代码实现支持。
5. 结合 Node.js 使用 LlamaGuard 和 PromptGuard
• 提供了代码示例,包括注册 LlamaGuard 和 PromptGuard 模型、配置护盾(shields)、手动运行护盾检测输入输出内容。
• 使用 Agent API 自动应用护盾,测试问题如“如何制作假文件”,展示了护盾如何阻止不安全内容的回答。
• 对比了护盾开启和关闭时的响应差异,验证了护盾的有效性。
6. 安全之外的额外优势
• 护盾不仅提升安全性,还能减少 GPU 资源浪费,因为护盾能快速拒绝不适合回答的问题,而无需模型耗费时间处理。
author Michael Dawson
Red Hat Developer
Implement AI safeguards with Node.js and Llama Stack | Red Hat Developer
With Llama Stack being released earlier this year, we decided to look at how to implement key aspects of an AI application with Node.js and Llama Stack. In this post, we will discuss AI safety and
#优质博文 #前端 #node #pino #logging #工程化
Production-Grade Logging in Node.js with Pino
author Ayooluwa Isaiah
Production-Grade Logging in Node.js with Pino
AI 摘要:本文详细介绍了在 Node.js 应用中使用 Pino 进行生产级日志记录的全面指南。Pino 作为一种高效且快速的日志库,以其 JSON 格式输出和与现代可观测性平台的兼容性而著称。文章涵盖了 Pino 的核心功能、日志级别管理、字段自定义、上下文日志记录、序列化器和敏感数据处理、日志路由以及与 Node.js 框架和 OpenTelemetry 的集成方法。
• 引言:介绍了 Pino 自 2014 年以来的广泛应用,强调其高性能和灵活配置,Fastify 框架默认使用的日志工具。提供了安装和基本使用示例,展示了 JSON 格式输出和通过 pino-pretty 美化日志。
• Pino 日志级别:详细说明了 Pino 支持的标准日志级别(trace, debug, info, warn, error, fatal)及其对应的数值表示,默认级别为 info,并提供了通过环境变量调整日志级别的方法。
• 自定义日志级别输出:展示了如何将数值级别格式化为字符串输出,并提到后续与 OpenTelemetry 日志数据模型的集成。
• 调整 Pino 默认日志字段:介绍了如何修改默认日志字段(如时间格式、字段重命名),以及通过 formatters 自定义绑定字段(pid, hostname)或添加全局元数据(如应用版本)。
• 捕获事件和错误详情:讲解了上下文日志记录的重要性,展示了如何在 HTTP 请求中添加详细信息,并符合 OpenTelemetry 语义约定;同时介绍了如何记录 Node.js 错误及其堆栈信息。
• 使用 Pino 序列化器塑造日志:介绍了序列化器的功能,用于转换日志对象中的特定属性,包括内置序列化器(err, req, res)和自定义序列化器的创建方法。
• 敏感数据的编辑或移除:提供了使用 redact 选项自动审查或移除日志中敏感数据(如密码、信用卡信息)的方法,并支持自定义审查内容或完全移除字段。
• 使用 Pino 传输路由日志:讲解了如何通过 transport 功能将日志输出到文件或多个目标(如控制台、文件、OTLP 端点),并提及同步日志和支持的传输生态。
• 与 Node.js 框架集成:展示了 Pino 在 Fastify(默认集成,支持请求上下文追踪)和 Express(通过 pino-http 中间件)中的使用方法,包括自动日志记录和自定义配置。
• 与 OpenTelemetry 集成:介绍了通过 pino-opentelemetry-transport 将 Pino 日志转换为 OpenTelemetry 格式并发送到 OTLP 端点,支持与分布式追踪的相关性,并解决语义约定问题。
author Ayooluwa Isaiah
Dash0
Production-Grade Logging in Node.js with Pino · Dash0
This article explores Pinos core features integration with popular Nodejs frameworks and setting up a productiongrade logging pipeline with OpenTelemetry
#优质博文 #前端 #node #新动态 #工程化
🍊 Node Weekly #581
🍊 Node Weekly #581
AI 摘要:本期 Node Weekly 聚焦 Node.js 生态系统的最新动态与技术更新,重点讨论了 Node.js 版本生命周期管理、技术提案进展以及一系列工具和库的更新。文章强调了旧版本(如 v18 及更早版本)已进入 EOL 状态,建议开发者直接升级到 v22 以获得更好的未来支持,同时介绍了 Node v24.2.0 的新功能、TC39 会议的技术提案、Jest 30 的重大改进,以及多个 Node.js 相关的工具和库的最新版本发布。此外,还涵盖了 JavaScript 生态系统的其他重要动态,如 Rolldown-Vite 带来的构建速度提升、CSS 2025 年度调查。
1. 社区动态
• Matteo Collina 指出 Node.js v18 及更早版本现已 EOL。他详细分析了这对旧版本用户意味着什么,以及为什么应该跳过活跃的 LTS v20 版本,直接升级到 v22 版本,以最大程度地适应未来发展。如果您必须继续使用旧版本,Matteo 分享了一个可供考虑的选项。
• Node v24.2.0(Current)发布:引入 import.meta.main,一个新的布尔值,用于判断当前 ES 模块是否为进程的入口点,便于在模块直接运行时执行特定代码;移除了 nghttp2 中对 HTTP/2 优先级信号的支持;使用权限系统时无需将应用程序入口点传递给 --allow-fs-read
• TC39 会议与技术提案:Sarah Gooding 总结了 TC39 近期会议讨论和推进的提案,包括 Array.fromAsync、Error.isError 和显式资源管理。
2. 测试框架与工具更新
• Jest 30 发布,带来了一系列重大改进,标志着数年来的一次重要版本更新。
• SQLite-JS:一个有趣的 SQLite 扩展,允许使用 JavaScript 编写自定义 SQLite 函数。
3. 博文教程
• Native Hot Module Reloading in Node via Module Hooks:通过模块钩子实现原生高效的“热模块”功能
• Unpacking Config and Environment Variables in Node:Liran Tal 分享了在 Node.js 中处理配置和环境变量的挑战及最佳实践
• Postgres 迁移:推荐使用 node-pg-migrate 处理 Node.js 中的 Postgres 迁移(作者:Boas Falke)。
• 构建 API:探讨如何使用 Node.js 和 gRPC 构建 API
• 在 Node 中使用 SQL 和 Sequelize:介绍在 Node.js 中使用 Sequelize 进行 SQL 操作
4. 代码与工具推荐
• Mock Service Worker:一个用于 REST/GraphQL API 模拟的库,支持拦截请求并模拟响应
• tz-lookup:基于经纬度的快速时区推断工具,以速度和大小为代价换取准确性
• 其他工具更新:包括 Babel 8 Beta、Prisma 6.9、OpenAI Node 5.2、MongoDB Node.js Driver 6.17 等多个库和框架的最新版本发布。
5. 其他 JavaScript 生态动态
• Rolldown-Vite:Evan You 宣布了基于 Rust 的快速 JavaScript 打包工具 Rolldown 的 Vite 替代包,许多开发者报告构建时间显著缩短。
• Gleam:一种针对 Erlang 和 JavaScript 运行时的语言,编译到 JS 的速度提升了 30%。
• State of CSS 2025:CSS 年度调查现已开放参与。
State of CSS 2025
Take the State of CSS survey
#优质博文 #前端 #node #工程化 #新动态
🕒 Node Weekly Issue #582
🕒 Node Weekly Issue #582
AI 摘要:本期 Node Weekly 聚焦 Node.js 生态系统的最新动态,重点介绍了 Node.js 通过 Amaro 1.0 向稳定支持 TypeScript 迈进的关键进展,同时涵盖了 pnpm 10.12 的全局虚拟存储功能、JavaScript 30 周年纪念以及多个实用工具和库的更新。此外,还包括对 Node.js 社区重要人物 Mikeal Rogers 的缅怀,以及对各种框架、测试工具和开发资源的深入探讨,内容详实且覆盖广泛。
1. Node.js 与 TypeScript 支持进展:
• Amaro 1.0 发布,作为 Node.js 官方工具,用于剥离 TypeScript 代码中的类型,使其能够在 Node.js 中运行,同时也可作为独立库使用。
• 这是 Node.js 将 TypeScript 支持从实验性转向稳定的重要里程碑,预计年内将在正式版本中实现稳定支持。
• Sarah Gooding 详细报道了相关进展,Marco Ippolito 在 Node Congress 2025 的演讲中进一步探讨了原生 TypeScript 支持的实现方式及当前局限性。
2. pnpm 10.12 新功能:
• 引入实验性“全局虚拟存储”功能,通过 node_modules 符号链接实现依赖共享,避免重复安装,从而提升效率和速度。
3. 社区动态与纪念:
• Isaac Z. Schlueter 发表了对 Node.js 社区重要贡献者 Mikeal Rogers 的缅怀文章,悼念其上周逝世。
• Dylan Goings 庆祝 JavaScript 诞生 30 周年,回顾其发展历程。
4. 技术文章与教程:
• 顶级 await 支持: 介绍了在现代浏览器及 Node.js(v16 以上)中,ES 模块支持顶级 await 的用法,适用于 .mjs 文件或指定为模块的 .js 文件。
• JavaScript 爬虫库推荐: 探讨了包括 Crawlee、Cheerio 等在内的最佳爬虫库,以及如何从 Node.js 使用浏览器进行爬取。
• Hono 框架与 Node.js: Hono 框架创始人 Yusuke Wada 分享了将其引入 Node.js 的经验,Hono 是一个基于 Web 标准的轻量级 Web 应用框架。
• 性能与压力测试: 介绍了三种 Node.js 测试工具(AutoCannon、Artillery、k6)的使用方法和场景。
• Nx 构建 MCP 服务器: Nx 团队分享了如何使用 Nx 构建 MCP 服务器的教程。
5. 工具与库更新(Code & Tools):
• WelsonJS: 利用 Windows 内置 JS 引擎构建 Windows 应用,类似 Electron,适合计算能力有限的环境,支持多种 JS 替代方案和 RPC 客户端。
• Croner 9.1: 使用 cron 语法触发函数或评估表达式,v9 已迁移至 TypeScript 并引入了一些破坏性变更。
• log-vwer: 基于 Node.js 的自托管日志监控仪表板,适用于本地日志存储与搜索。
• 其他更新: 包括 & Entities 6.0(HTML/XML 实体编码/解码)、ESLint v9.29.0(支持显式资源管理语法)、LogTape 0.12(无依赖日志库)、fast-png 7.0(PNG 图像编解码)、node-llama-cpp 3.10(本地运行 LLM)、Discord.js 14.20、Ableton.js 3.7、Fastify 5.4、Mongoose 8.16、Piscina 5.1、tiff 7.0 等。
6. 由于本周内容相对较少,编辑团队回顾了未入选的库存项目,推荐了以下资源:
• FIGLet.js: 使用 FIGfont 规范将文本渲染为 ASCII 形式,适用于 CLI 工具开发。
• Stricli: Bloomberg 使用的 CLI 工具构建框架。
• Pyodide: 基于 WebAssembly 的 Python 发行版,支持浏览器和 Node.js 运行时。
• VS Code 中的 Node.js 性能分析: Pavel Romanov 展示了如何在 VS Code 中进行 Node.js 应用的基本性能分析。
#优质博文 #前端 #javascript #node #新动态 #AI
Node Weekly#583
Node Weekly#583
AI 摘要: 本文是 Node Weekly 第 583 期的内容,发布于 2025 年 6 月 24 日,聚焦 JavaScript 和 Node.js 生态系统的最新动态与技术进展。文章涵盖了 AdonisJS 7 的路线图、Node.js 及其替代运行时 Bun 的最新版本更新、Vite 7.0 的发布预告,以及多线程、序列化、正则表达式等技术主题的深入探讨。此外,还介绍了多个工具和框架的更新,如 SVGO 4.0、Hono 4.8 等,并分享了 JavaScript 领域的其他重要新闻和资源。
1. AdonisJS 7 路线图:
• 介绍了 AdonisJS 作为一个 TypeScript 优先的“全能型”Web 框架,其开发者计划加快重大版本的发布频率。
• v7 版本亮点包括 Node.js 诊断通道支持、类型安全的 URL 构建器、新加密层、对通知和 TanStack Query 的原生支持等。
• 作者 Romain Lanz 还提供了 Adonis 与 Nest 的对比分析,并鼓励读者提供反馈。
2. 简讯 (In Brief):
• Node v20.19.3 (LTS) 发布,WebCryptoAPI 中的 Ed25519 和 X25519 提升为稳定状态,更新根证书和依赖项,并包含 V8 修复补丁。
• Bun v1.2.17 支持服务器端代码的提前打包,进一步提升 Node.js 兼容性。
• Vite 7.0 刚刚发布,更多细节将在 JavaScript Weekly 的周五报道中披露。
3. 技术文章与教程:
• Worker Threads: Node 中的多线程指南:探讨 Node 的非阻塞事件驱动模型,以及如何通过成熟的 worker threads 功能实现多线程应用 (作者:Lizz Parody)。
• Node 中序列化方法的基准测试:对比 JSON 及二进制选项如 protobuf 和 msgpack 的性能 (作者:Adam Faulkner)。
• JavaScript 中正则表达式使用技巧:Dr. Axel Rauschmayer 提供了一些方法,使正则表达式编写更加简洁和易读。
• 其他内容包括使用 AI 生成 Playwright 测试、MongoDB 测试、CommonJS 与 ESM 桥接、以及基于 Node 和 OpenAI 构建 RAG 系统等教程和视频。
4. 代码与工具 (Code & Tools):
• SVGO 4.0:Node 驱动的 SVG 优化工具,v4.0 带来默认插件、公共 API 的重大变更,并支持 ESM/CJS 双包模式 (作者:Kir Belevich)。
• Hono 4.8:跨运行时的 Web 标准框架,新增路由辅助函数、JSX 流式传输和 CORS 改进,以及静态站点生成插件系统 (作者:Yusuke Wada 等)。
• LogTape 1.0.0:适用于 Node、浏览器和边缘函数的通用日志工具,特别适合希望以低门槛方式为最终用户添加日志的库开发者 (作者:Hong Minhee)。
• 其他工具更新包括 zx 8.6、Typegoose 12.17、OpenAI Node 5.7、Electron 37.0、BullMQ 5.56 和 Mocha 11.7。
5. JavaScript 领域其他动态 (Elsewhere in JavaScript):
• Dr. Axel Rauschmayer 发布新书《Exploring JavaScript (ES2025 Edition)》,免费在线阅读并附带学习卡片。
• Porffor 提前编译 JavaScript 编译器的创建者分享了工作原理的演讲。
• 介绍新的自定义元素 <syntax-highlight>,利用 CSS Custom Highlight API 简化语法高亮。
• Git 2.50.0 发布,包含重要更新;浏览器中 JSON 模块脚本现已“Baseline Newly Available”。
2Ality
Tips for making regular expressions easier to use in JavaScript
In this blog post, we explore ways in which we can make regular expressions easier to use.
#优质博文 #node #前端 #新动态
Node Weekly Issue #584
Node Weekly Issue #584
AI 摘要: 本期 Node Weekly(#584,2025年7月1日)聚焦 Node.js 的最新动态和技术进展,涵盖了 Node.js 版本更新(如 v22.17.0 LTS 和 v24.3.0)、ECMAScript 2025 规范的批准,以及多个与 Node.js 相关的工具和库的更新。此外,还包括 JavaScript 生态系统的其他热点话题,如 Deno 的新提案和 Cloudflare 的容器技术,旨在为开发者提供全面的技术资讯和资源。
1. 社区动态
• Modern Node.js Patterns for 2025:Ashwin 回顾了 Node.js 的潜力,讨论了 ES 模块、内置 Web API、测试运行器、观察模式、权限模型和导入映射等关键特性,强调了 Node.js 在现代开发中的重要性。
• Node v22.17.0 (LTS) 发布:此 LTS 版本将 assert.partialDeepStrictEqual() 提升为稳定状态,并回溯了 Node 24 的部分功能,同时稳定了多个长期实验性 API 和函数(作者:Antoine du Hamel)。
• Node v24.3.0 (Current) 发布:当前版本发布,但无显著新功能。
• ECMAScript 2025 规范批准:Ecma 国际大会批准了 ES2025 语言规范
2. 工具与库更新与博客
• Transformers.js 3.6:支持在 Node.js 中运行 Google 的 Gemma 3n 模型,将 Hugging Face 的 Python 库能力引入 JavaScript,适用于 NLP、视觉和音频处理等领域。
• Repomix 1.0:基于 Node.js 的工具,可将代码库打包为 AI 友好的格式(如 XML、MD),现已发布稳定版本。
• Marked 16.0:快速 Markdown 解析器和编译器,适用于内容处理。
• whatsapp-api-js 用于 WhatsApp 官方 API 的库。
• 其他工具更新包括 dotenv v17.0、Electron v37.0.0、better-sqlite3 v12.2 等,涵盖环境变量加载、桌面应用开发和数据库操作等领域。
• Node.js 多玩家游戏在低 CPU 使用率下延迟问题(Hacker News)。
3. 其他 JavaScript 生态动态
• Cloudflare 推出 Containers 服务,扩展 Workers 功能,支持容器化应用。
• Temporal API 提案进入 Stage 3 草案阶段。
• Node.js 官方 Bluesky 账号寻求社区意见,讨论内容发布方向。
• 如何使用 NestJS 作为 WebRTC 视频聊天的信令服务器(Christian Nwamba)
2Ality
Ecma International approves ECMAScript 2025: What’s new?
On 25 June 2025, the 129th Ecma General Assembly approved the ECMAScript 2025 language specification (press release), which means that it’s officially a standard now. This blog post explains what’s new.
❤2
#优质博文 #前端 #node #工程化
Modern Node.js Patterns for 2025
author Ashwin
Modern Node.js Patterns for 2025
AI 摘要:本文深入探讨了 Node.js 在 2025 年的现代开发模式,展示了其从早期的回调和 CommonJS 主导到如今基于标准的开发体验的巨大转变。文章重点介绍了 ES 模块(ESM)、内置 Web API、测试工具、异步模式、流处理、Worker 线程、安全性与性能监控等现代特性,旨在帮助开发者构建更高效、可维护且符合 Web 标准的应用程序。通过减少外部依赖、提升开发者体验和优化部署方式,Node.js 已成为一个全面的开发平台,为未来的服务器端 JavaScript 开发奠定了坚实基础。
1. 模块系统:ESM 成为新标准
• 对比 CommonJS 和 ES 模块,ESM 提供更好的工具支持和 Web 标准一致性。
• 介绍 node: 前缀用于内置模块导入,避免命名冲突并明确依赖。
• 强调顶层 await 特性,简化初始化代码,消除 IIFE(立即执行异步函数)模式。
2. 内置 Web API:减少外部依赖
• 原生 Fetch API 取代外部 HTTP 库(如 axios),支持超时和取消操作。
• AbortController 提供标准化操作取消机制,适用于多种异步操作。
3. 内置测试工具:无需外部框架
• Node.js 内置测试运行器,提供现代化 API,支持单元测试、异步测试和覆盖率报告。
• 开发中的 watch 模式提供即时反馈,简化测试流程。
4. 高级异步模式:成熟的异步处理
• 结合 async/await 与并行执行(如 Promise.all )和结构化错误处理,提升代码性能和可读性。
• 使用 AsyncIterators 改进事件驱动编程,支持流式事件处理和背压控制。
5. 流处理与 Web 标准集成
• 现代流处理 API(如 pipeline )提供自动清理和错误处理,简化操作。
• 支持 Web Streams,实现与浏览器代码和边缘环境的无缝兼容。
6. Worker 线程:CPU 密集型任务的并行处理
• Worker 线程实现多核利用,适用于计算密集型任务,避免阻塞主线程。
• 示例展示如何将繁重计算任务委托给 Worker 线程,保持应用响应性。
7. 提升开发者体验:内置工具简化开发
• 内置 watch 模式和环境文件支持,替代 nodemon 和 dotenv ,减少配置负担。
• 简化开发流程,提升开发效率。
8. 现代安全与性能监控
• 实验性权限模型限制应用访问权限,遵循最小权限原则。
• 内置性能监控工具( perf_hooks )帮助识别瓶颈,无需外部 APM 工具。
9. 应用分发与部署优化
• 支持单文件可执行应用,简化 CLI 工具和桌面应用的部署,无需用户安装 Node.js。
10. 现代错误处理与诊断
• 结构化错误处理提供丰富的上下文信息,便于调试和监控。
• 高级诊断工具(如 diagnostics_channel )帮助深入了解应用内部行为。
11. 现代包管理和模块解析
• 支持导入映射(Import Maps),简化内部模块引用,便于重构。
• 动态导入支持按需加载和代码分割,适应不同环境需求。
总结与未来展望
• 强调拥抱 Web 标准、使用内置工具、优化异步模式和开发者体验的重要性。
• Node.js 保持向后兼容,支持渐进式采纳现代模式,确保应用长期可维护性。
author Ashwin
❤2
#Newsletter #前端 #node #tools
Node Weekly Issue #585
author Node Weekly Team
Node Weekly Issue #585
AI 摘要: 本期 Node Weekly(#585,2025年7月8日)涵盖了 Node.js 生态系统的最新工具、教程和资讯,重点介绍了处理无效 JSON 数据的工具 jsonrepair、修复 Node 中 emoji 切片问题的技术、以及多个实用工具和框架如 Bruno 和 grammY。此外,还包括 Node.js 官方 API 文档设计改进的进展、AI 驱动的颜色搜索引擎开发教程,以及 JavaScript 生态系统中的其他动态,如 Deno 2.4 发布和 Rust 在 JS 工具链中的应用趋势。
1. 核心内容与工具
• jsonrepair: 介绍了一个修复无效 JSON 文档的工具,适用于处理 LLM 或不合规软件输出的异常 JSON,可通过 Node、CLI 或在线版本使用。
• Codepoint–Safe Truncation: 针对 Node 中 CSV 导入因 emoji 导致的错误,James Mulholland 展示了如何通过代码点感知的 spread 方法解决切片问题。
• Bruno: 一个基于 Node 和 Electron 的开源 HTTP API 测试 IDE,作为 Postman 的轻量级替代品,支持复杂和简单的请求测试。
• Poolifier 5.0: 实现 worker_threads 和 cluster 的工作池,支持可中止任务。
• grammY: 一个最新的 Telegram 机器人框架,简化机器人开发,支持最新的 Telegram Bot API。 【这个好用的喵】
• 0x 6.0: 一款单命令生成 Node 进程交互式火焰图的性能分析工具。
• 其他工具更新:包括 Babel 7.28.0(支持原生 TS 配置和 ES2026 资源管理)、Inquirer.js 12.7(命令行交互 UI)、Secretlint 10.2(防止凭据泄露)、Faker 9.9(生成伪造数据)等。
2. 教程与资源
• What’s the Difference Between Ordinary Functions and Arrow Functions?: James Sinclair 探讨普通函数与箭头函数的区别。
• Am I Online?: Anton Zhiyanov 介绍一种通过检查特定 Google URL 判断应用是否在线的方法。
3. Node.js 社区动态:
• API 文档改进:Node.js 团队正在通过 api-docs-tooling 工具重塑 API 文档的设计和构建流程,并分享了初步进展。
• 数据出口成本比较:对比了 Vercel、AWS 等约 40 个流行云服务的数据出口费用。
• Node 应用文件结构讨论:Reddit 的 /r/node 社区就 Node 应用文件结构展开了有趣讨论。
4. JavaScript 生态系统其他资讯:
• Rust 在 JS 工具中的应用:Oliver Stenbom 讨论 JavaScript 工具链逐渐被 Rust 重写的趋势。 【锈化!】
author Node Weekly Team
GitHub
GitHub - josdejong/jsonrepair: Repair invalid JSON documents
Repair invalid JSON documents. Contribute to josdejong/jsonrepair development by creating an account on GitHub.
#优质帖子 #前端 #Node #工程化 #可扩展性 #DDD #模块化 #Nest
Best Scalable File Structure for unopinionated Node frameworks?
Best Scalable File Structure for unopinionated Node frameworks?
AI 摘要:本文讨论了在无特定意见的 Node.js 框架(如 Express、Hono 等)中,如何设计一个可扩展且适合生产环境的文件结构。作者和评论者围绕领域驱动设计(DDD)、模块化单体架构(Modular Monolith)以及文件结构对代码库可维护性的影响展开了激烈讨论。部分人认为文件结构对团队协作和代码库扩展至关重要,而另一些人则认为其重要性被夸大,强调不应过于纠结于目录布局。
Reddit
From the node community on Reddit: Best Scalable File Structure for unopinionated Node frameworks?
Explore this post and more from the node community
#优质博文 #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 功能。
nodejs.org
Node.js — Node.js v24.4.0 (Current)
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
#Newsletter #node #新动态
NodeWeekly #587
NodeWeekly #587
AI 摘要:本文是 NodeWeekly 第 587 期(2025 年 7 月 22 日)的newsletter,聚焦 Node.js 生态系统的最新动态与技术进展。内容涵盖 Node.js 与 PHP 的跨生态系统整合(如 Laravel 在 Watt 运行时的支持),Node.js 安全更新,工具与库的最新版本发布(如 Bun v1.2.19、NAPI-RS v3),以及社区内的其他热点话题(如 WebAssembly 发展现状与 npm 开发者面临的钓鱼攻击)。此外,还包括了多个实用工具、教程和文章推荐,旨在为开发者提供全面的技术资讯和资源。
1. Laravel and Node.js: PHP in Watt Runtime:介绍 php-node 项目如何通过 Watt 应用服务器进一步支持 Laravel 应用的运行,探索 PHP 和 Node.js 生态系统的融合。
2. eslint-config-prettier 包的安全漏洞分析,Node.js http/https 原生支持代理(通过环境变量启用),Bun v1.2.19 新功能(pnpm 风格的 node_modules 隔离、VS Code 测试集成等),以及 pnpm 即将支持锁定 Node.js 版本。
3. Endor: Add Services as Node Dependencies:介绍 Endor 项目,通过简单的 npm install 和 endor run 命令,快速创建沙盒环境,支持 Postgres、MariaDB 等服务。
4. Articles and Case Studies:包括使用 Eleventy(Node 静态站点生成器)迁移网站提升 24% 性能的案例;基于视觉语言模型构建字体搜索引擎的教程;
5. 推荐多个工具和库:npq(安装前审计包安全)、NAPI-RS v3(支持 WebAssembly 的 Node.js 插件框架)、YouTube.js 15.0(非官方 YouTube API 客户端)、stripe-sync-engine(Stripe 到 Postgres 同步引擎)以及其他如 NeutralinoJS、Corepack、ESLint 插件等的最新版本更新。
6. 汇总更广泛的技术动态:Andy Wingo 关于 WebAssembly 现状的文章,Deno 团队分享的 JavaScript 历史视频,git-quick-stats.sh 工具,以及针对 npm 开发者的钓鱼攻击警告。
👍1
#Newsletter #JavaScript #前端 #安全 #react #WASM #node #CSS
JavaScript Weekly #746
author JavaScript Weekly 编辑团队
JavaScript Weekly #746
AI 摘要:本期 JavaScript Weekly 聚焦于 JavaScript 生态的最新动态,包括高性能工具库 es-toolkit 对 Lodash 的取代、React/Next.js 复杂项目的重构建议、WebAssembly (WASM) 与 DOM 支持现状、npm 供应链安全问题、以及一系列重量级项目和社区新闻。此外,涵盖新版本发布、实用代码与工具、开发者经验反思、前端性能提升案例和社区趣闻等,内容丰富,覆盖了当下前端开发的热点话题和实践建议。
1. 社区与安全动态
• 细节剖析近期 JavaScript 生态的供应链安全事件,如 npm 上 is 包被劫持导致的恶意代码传播,以及 stylus 包下架风波。
• 介绍供西班牙语开发者使用的 EsJS,探索非英语语境下的 JavaScript 编程创新。
• 对比 Biome 与 Oxlint 两款 Lint 工具,在类型智能与速度上的表现差异。
2. 工具与库更新
• es-toolkit:兼容 Lodash、更快且更小(97% 体积减小),被 Storybook、CKEditor、Nuxt 推荐,利于代码体积优化。
• Bun v1.2.19:现在支持带有 bun install 的 pnpm 风格的隔离 node_modules ,提供交互式依赖更新功能等。Bun 1.3 也有望很快推出。
• React Native Reanimated 4.0、PythonMonkey 1.2、Oxlint、Jasmine 等多款工具新版本。
• Transformers.js 3.7:支持在浏览器借助 ONNX 运行时运行预训练模型,加入语音转录及 LFM2 和 ModernBERT 支持。
• npq:包安装前安全审核,集成 Snyk 漏洞库并审核包活跃度,有助于抗击恶意依赖。
• Untitled UI React:基于 Tailwind CSS 和 React Aria 的大型 UI 组件库,原生开源并配备 PRO 版本。
• ts-regexp:为 TypeScript 带来严格静态类型的正则表达式(RegExp)。 #正则
• ApexCharts 5.3:流行的 JS 图表库。现在具有数据解析功能 ,可将原始数据对象直接映射到图表。 演示
• vue-multiselect 3.3:Vue 的通用选择 / 多选 / 标记组件。 #vue
• eslint-plugin-unicorn 60.0:100+ 有用的 ESLint 规则集中在一个地方。
3. 实用开发经验与案例分享
• React/Next.js 开发最佳实践:避开 useState 与 useEffect 过度使用、数据嵌套、表单扩展及隐式状态共享陷阱。
• WASM 与 DOM:讨论 WebAssembly 直接访问 DOM 的前景,以及现代工具链对 WASM 生态的支持改进。
• 移除 SPA 的现代 CSS 实践建议,呼吁回归服务端渲染和真实页面体验利于性能与交互。
• Next.js 站点迁移到 Eleventy 提升 24% 性能,展示静态站点生成器的新优势。
• JS Event Listener 参数处理、构建字体搜索引擎、Three.js+WebGPU 的文本破坏交互等创新项目实践。
4. 社区趣闻与行业动向
• SVG 图形教程,鼓励开发者解锁矢量图形能力。
• HTML 2025 状态调查开放,鼓励开发者参与获取前沿信息。
• Google 推出 OSS Rebuild 以提升开源软件安全,MDN 庆祝 20 周年,前端表单规范问题(三个 HTTP 版本之后,表单仍然一团糟)
author JavaScript Weekly 编辑团队
Socket
npm ‘is’ Package Hijacked in Expanding Supply Chain Attack -...
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
#Newsletter #Node #JavaScript #前端 #TypeScript #AI
📢 Node Weekly #588
author Node Weekly 编辑团队
📢 Node Weekly #588
AI 摘要:本期 Node Weekly(第588期,2025年7月29日)带来了 JavaScript 生态的最新动态,内容涵盖众多 JavaScript 运行时历程的重要综述、TypeScript 与 Node.js 技术升级、安全及工具更新,以及业界有趣开发实践。文章帮助开发者全面了解前后端生态进展,关注实用工具及 AI 集成,并强调代码安全与生产力提升。
1. 生态与社区动态
• The many, many, many JavaScript runtimes of the last decade 长文回顾了近十年间主要 JavaScript 运行时(Runtime)与引擎的发展,包括 Node.js、云平台专有运行时及多种不那么知名的方案,为开发者补全 JS 生态知识。
• TypeScript 5.9 RC 发布,新增 import defer 及 --module node20 等特性;Node.js 生态工具链持续跟进最新规范。
• Google 推出 OSS Rebuild 项目,目标通过包与上游工件比对增强 npm 等开源生态的安全性。
• npm 生态持续遭受攻击,is 包通过通过拼写钓鱼域名劫持进行钓鱼。
• HTML 2025 状况调查开启,旨在收集前端开发者对 HTML 发展状况的意见。
• 一名开发者声称讨论 tabs 与 spaces 的争论趋于结束,主流语言倾向使用 spaces。
• 用 Node.js 和 Postmark 构建的电子邮件控制的 Game Boy 模拟器
• es-toolkit 已成为 Lodash 的 100% 兼容替代方案,突出生态兼容性成果。
2. 技术专题与实践分享
• 介绍 Unix 域套接字(Unix Domain Sockets)在 Node.js 内部进程通信(IPC)中的优势,约可降低 50% 延迟,相较 TCP loopback 更高效。
• 采访 Bun 作者,解析 Bun 作为 Node.js 生态“替代品”的兼容性挑战与工程实践。
• 文章详述如何构建暴露数据资源给大语言模型(LLM)的 Node.js MCP 服务器。
• 探讨 TypeScript 多仓库(multi-repo)间的类型安全问题及解决方法
• 分析 JavaScript 逻辑赋值操作符的语法进步及实际开发中带来的便利。
3. 代码与工具
• AudioTee.js:为 Node.js 捕捉 macOS 系统音频输出,并以 PCM 格式定期输出。
• Transformers.js 3.7:在浏览器与 Node.js 侧支持 ONNX 预训练模型推理,v3.7 增加了 Voxtral(语音转录及音频理解)、LFM2 和 ModernBERT 支持。
• match-sorter 8.1:为数组筛选和排序提供确定性算法,便于开发者实现可预期的最优匹配排序。
• 其他值得关注的工具/库更新:Inquirer 12.9(终端交互式输入)、Node File Trace 0.30(依赖追踪)、MongoDB Node.js Driver 6.18、node-rate-limiter-flexible 7.2、Ghost 6.0 RC、@google-cloud/bigtable 6.2、Axios 1.11、TIFF 7.1、ESLint v9.32.0 等等。
author Node Weekly 编辑团队
Buttondown
The many, many, many JavaScript runtimes of the last decade
This last decade has seen an inundation of new JavaScript runtimes (and engines in equal measure), enabling us to run JavaScript in all manner of contexts...
#优质博文 #前端 #JavaScript #runtime #Node #跨平台 #全栈
史学家看过来!(很好的文章
The many, many, many JavaScript runtimes of the last decade
author Jamie
史学家看过来!(很好的文章
The many, many, many JavaScript runtimes of the last decade
AI 摘要:过去十年,JavaScript(简称 JS)运行时(JavaScript Runtime)经历了爆炸性增长,跨越云、边缘(Eadge)、微控制器、智能电视、移动/桌面原生应用(Native App)等众多环境。随着 Node.js、Deno、Bun、Cloudflare Workers、Hermes、QuickJS 等不同引擎和运行时的出现,JS 开发者获得了前所未有的选择自由。文章系统梳理了驱动 JS 运行时百花齐放的原因:硬件性能多样化、任务场景多元化、与原生 API 的融合需求以及跨平台/多语言互操作等。最终结论是:没有哪一个 JS 运行时能“一统天下”,不同场景必然产生不同最优解,也促成了生态繁荣与技术创新的持续推进。
1. JavaScript 运行时的多样化浪潮
• 过去十年 JS 运行时和引擎在数量和类型上激增,支持从云、大型服务器到边缘、物联网和嵌入式设备。
• 没有单一运行时能覆盖所有场景,各种任务对性能、包体体积、API 支持等需求差异巨大。
2. 边缘计算(Edge Computing)和“无服务器”
• JavaScript 在边缘的脚步:先由 Node.js 在 AWS Lambda 支持,继而 Cloudflare Workers、Deno Deploy、Bun 等新锐项目快速跟进。
• 各家采用不同 JS 引擎:V8(Node.js、Cloudflare)、JavaScriptCore(Bun)、SpiderMonkey/WinterJS,QuickJS(LLRT)等,厂商和开发者根据实际需求选择最优方案。
• 行业逐步形成新的标准组织,如 WinterCG 推动运行时 API 一致性。
3. 微控制器与极小型设备
• 资源受限场景驱动极致“瘦身”引擎(如 Duktape、JerryScript、Espruino、mjs、Moddable、Elk)。
• 推动对应微型 runtime 出现(IoT.js、Microlattice.js、low.js)使 JS 覆盖从命令行到“3 分钱”MCU 芯片。
• 跨语言调用与嵌入需求促进微型 JS 引擎/运行时出现。
4. 多语言互操作(Polyglot engines)
• 不同语言实现 JS 引擎,促进零成本语言互调。显著例子有 Rhino/Nashorn/Graal.js(Java/JVM)、jint(.NET/C#)、langjs/pyNarcissus(Python)、Boa/rquickjs(Rust)、Kiesel(Zig)等。
• 甚至有用 JS 编写 JS 引擎的项目(如 Narcissus、Porffor、Shadow),展现 JS 生态和语言本身的强大适应性。
• 多数主流 polyglot 项目追求互操作性和练手,更极大丰富了 JS 生态。
5. 原生应用开发与 JS 运行时
• Web View 类应用:Cordova/PhoneGap、Ionic/Capacitor(移动端)、Electron、NW.js(桌面)、Smart TV 平台广泛采用 webview+JS runtime 构建跨平台 GUI。
• React Native 体系:通过 JS runtime+bridge 机制渲染原生组件,最早依赖 JavaScriptCore,后主推 Hermes,还支持 V8/QuickJS/Chakra 等多引擎适配;已成为移动端主流,正在攻入桌面和智能电视。
• NativeScript:深度绑定原生 API,早期支持多引擎(JSC/V8),后统一到 V8;近期演化为 Node-API 驱动,以便灵活适配各主流 JS 引擎。
• Node.js 在原生开发中的特殊地位:广泛用于 CLI 服务和桌面集成,但在 GUI、移动原生方面更显边缘,行业也频繁尝试 V8/ChakraCore/JerryScript 等不同引擎 port。
6. 总结与反思
• JS 凭借开放性和简洁性,成为最有适应性的面向 GUI 与原生应用开发的语言,并渗透到各类设备终端。
• 运行时选择众多,驱动力多样,硬件特性、启动时/运行时性能、bundle 大小、API 支持、native 调用等需求差异难以统一,任何“统一 JS 运行时”设想都难以落地。
• 健康竞争、百花齐放推动了巨大的技术进步,使 JS 成为未来开发“最安全”的通用技术选择之一。
7. 附录:遗漏与新兴运行时一览
• ByteDance Lynx/PrimJS、Ladybird LibWeb/LibJS、gjs(SpiderMonkey/ GNOME)、MuJS、JXA(macOS automation)、dukluv/txiki.js、Bare、lo.js 等新老项目列举。
author Jamie
Buttondown
The many, many, many JavaScript runtimes of the last decade
This last decade has seen an inundation of new JavaScript runtimes (and engines in equal measure), enabling us to run JavaScript in all manner of contexts...