呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
#优质博文 #前端 #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
#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 编辑团队
#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 编辑团队
#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 开发者的钓鱼攻击警告。
#优质博文 #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 功能。
#优质帖子 #前端 #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)以及文件结构对代码库可维护性的影响展开了激烈讨论。部分人认为文件结构对团队协作和代码库扩展至关重要,而另一些人则认为其重要性被夸大,强调不应过于纠结于目录布局。
#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
#优质博文 #前端 #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
#优质博文 #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)
#优质博文 #前端 #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”。
#优质博文 #前端 #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 应用的基本性能分析。
#优质博文 #前端 #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 年度调查现已开放参与。
#优质博文 #前端 #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
#优质博文 #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
#优质博文 #前端 #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 的要素。
#优质博文 #前端 #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
#优质博文 #前端 #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 #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
#优质博文 #前端 #新动态 #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
#优质博文 #前端 #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 运算符查找变得容易,甚至可以找到您以前从未遇到过的运算符,例如 >>>=。