#559 — December 10, 2024
🎄 The Node world is experiencing a post-Thanksgiving interfestal lull, so this issue includes a few items we overlooked earlier this year. Next week brings our usual annual roundup, though, so keep your eyes peeled for that before the festive break :-)
__
Peter Cooper, your editor
Together with
Node.js Delivers First LTS with require(esm)
Enabled — It’s a modest milestone, but Node v22.12.0 (LTS) has been released and marks Node’s first LTS release with non-flagged support for loading native ES modules with require()
. It’s still experimental, though, and you’re encouraged to send in feedback and bug reports.
Sarah Gooding
Node’s Corepack: Version Control for Package Managers — A quick intro to a commonly misunderstood (and mildly contentious) part of the modern Node distribution: Corepack. It’s a (still) experimental tool for managing package managers.
Trevor I. Lasn
Memetria K/V: High-Performance Key-Value Hosting — Boost your Node.js apps with Memetria K/V, providing portable, easy-to-use hosting for Redis OSS and Valkey. Scale your applications with ease and achieve high performance. Includes detailed analytics and large key memory tracking.
Memetria sponsor
IN BRIEF:
🎄 Last week we mentioned the fabulous Advent of Code competition which is taking place again right now. The Deno team want to sweeten the deal by bribing encouraging you to give Deno a go with some special stickers on offer for completing certain numbers of days.
Just in case you forgot, Douglas Crockford is Not Your Dad – at least when it comes to putting comments in JSON..
⚛️ React 19 has been released. More on this in tomorrow’s React Status.
Implementing Filtered Semantic Search Using pgvector
and JS — If you need something more sophisticated than keyword search, a semantic approach based upon the meanings of words/queries compared using vector embeddings offers a big step up. Luckily, there are some Postgres extensions that make building such things quite simple..
Timescale Team
📄 An Introduction to Database Migrations with Drizzle ORM Adam Rackis
📄 Taking Regular Screenshots of My Website – A nifty robust approach using Playwright and GitHub Actions. Alex Chan
📄 Building Your Own npm create
Package – You’ll have seen various scaffolding tools using this technique. (A Different) Alex Chan
📄 I Like Makefiles – I also use this approach to help me organize the various shell incarnations I need for each project I’m working on. Sebastian Witowski
📄 Requesting Camera and Microphone Permissions in an Electron App Farhan CK
📺 The V8 JavaScript Engine: Let’s Read The Code Ants Are Everywhere
🛠 Code & Tools
🖼️ wasm-vips: It’s libvips
, Compiled to WebAssembly — libvips is a popular, highly efficient image processing library written in C. You can use it via Sharp in Node.js, but this offers a more isomorphic route for use in Node, Deno, and modern browsers by way of WebAssembly. (There’s a nifty online demo here.)
Kleis Auke Wolthuizen
Build Fully Functional Apps in Minutes, Not Months — Create, run, edit, and deploy full-stack web apps with Bolt.
StackBlitz sponsor
Undici v7.1.0: Now with Stable HTTP/2 Support — Last week we featured the latest major v7 version of Node’s powerful HTTP/1.1 client. Now, after a little discussion, they’re marking Undici’s HTTP/2 support stable too (notes on HTTP/2 support in the docs).
Matteo Collina et al.
tldts: Extract Domain Names, Subdomains and Suffixes from URLs — A ‘blazing fast’ library for extracting hostnames, domains, public suffixes, and more from URLs, with full Unicode/IDA support, type definitions, and more.
Parisot and Berson
📰 Classifieds
🚨 Catch flaky tests before they break your build! Learn to flag unreliable tests early and keep your CI/CD pipeline running smoothly.
📬 Hookdeck: A serverless queue to reliably send, receive, transform, filter, and route events across your event-driven apps.
Pelias 4.0: A Modular, Stand-Alone ‘Coarse’ Geocoder — Given an address or place name this will come up with geographic coordinates, and vice versa. In terms of finding a location, it’s not super accurate (hence the ‘coarse’) but it may be acceptable for your use case. Demo here.
Pelias
node-qrcode: Generate QR Codes in Node — The ubiquitous 2D barcodes that can store arbitrary data (like URLs).
Ryan Day
Fastify 4.29 – An update to the 4.x branch of the fast, low overhead Node.js web framework. Note that v5.1 remains the absolute latest version, however.
better-sqlite 11.7 – Neat way to use SQLite from Node and Electron. SQLite is bumped up to v3.47.2.
ExpressoTS 3.0 – TypeScript framework for server-side apps.
Piscina 4.8 – Efficient worker thread pool implementation.
pnpm 9.15 – The alternative, efficient package manager.
node-cron 3.3 – Run functions / commands on a schedule.
AlaSQL.js 4.6 – Isomorphic JavaScript SQL database.
Got a link for us? Reply and tell us. We can’t include everything but we’ll look at anything you send. Thanks!
Sponsorship: Email [kristina@cooperpress.com](mailto:kristina@cooperpress.com)
for details.
Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
#559 — 2024 年 12 月 10 日
🎄 Node 世界正在经历感恩节后节间的平静,因此本期包括我们今年早些时候忽略的一些项目。不过,下周我们将迎来我们通常的年度综述,所以在节日假期之前请密切关注:-)
__
彼得·库珀,你的编辑
连同
[](https://nodeweekly. com/link/163185/0a4070b383)
Node.js 交付第一个启用 require(esm)
的 LTS — 这是一个适度的里程碑,但是 Node v22.12.0 (LTS) ) 已发布,标志着 Node 的第一个 LTS 版本,具有使用“require()”加载原生 ES 模块的非标记支持。不过,它“仍处于实验阶段”,鼓励您发送反馈和错误报告。
萨拉·古丁
Node 的 Corepack:包管理器的版本控制 — 快速介绍一个常见的误解(以及 [轻微争议](https:// /nodeweekly.com/link/163227/0a4070b383)) 现代 Node 发行版的一部分: Corepack。它是一个(仍然)实验性工具,用于管理包管理器。
特雷弗·拉森
[](https://nodeweekly.com/link/163185/0a4070b383 )
Memetria K/V:高性能键值托管 — 使用 Memetria K/V 增强您的 Node.js 应用程序,提供便携式、易于使用的 Redis OSS 和 Valkey 托管。轻松扩展您的应用程序并实现高性能。包括详细的分析和大密钥内存跟踪。
Memetria赞助商
简而言之:
*以防万一您忘记了,Douglas Crockford 不是您的爸爸 – 至少在以 JSON 格式添加注释时是这样。
使用 pgvector
和 JS 实现过滤语义搜索 — 如果您需要比关键字搜索更复杂的东西,可以使用 语义 方法与使用向量嵌入相比,基于单词/查询的含义提供了很大的进步。幸运的是,有一些 Postgres 扩展可以让构建这样的东西变得非常简单。
时间尺度团队
📄 使用 Drizzle ORM 进行数据库迁移简介 Adam Rackis
📄 定期对我的网站进行屏幕截图 – 一种使用 Playwright 和 GitHub Actions 的强大方法。亚历克斯·陈
📄 构建您自己的“npm create”包 – 您将看到使用此技术的各种脚手架工具。 (不同)Alex Chan
📄 我喜欢 Makefiles – 我还使用这种方法来帮助我组织我正在处理的每个项目所需的各种 shell 版本。塞巴斯蒂安·维托夫斯基
📄 在 Electron 应用程序中请求摄像头和麦克风权限 Farhan CK
📺 V8 JavaScript 引擎:让我们阅读代码 蚂蚁无处不在
🛠 代码和工具
🖼️ wasm-vips:它是 libvips
,编译为 WebAssembly — [libvips](https://nodeweekly.com/link/ 163204/0a4070b383) 是一个用 C 语言编写的流行的、高效的图像处理库。可以通过 Node.js 中的 Sharp 使用它,但这提供了一种通过 WebAssembly 在 Node、Deno 和现代浏览器中使用的更加同构的途径。 (这里有一个精彩的在线演示。)
克莱斯·奥克·沃尔图伊曾
在几分钟而不是几个月内构建功能齐全的应用程序 — 使用 Bolt 创建、运行、编辑和部署全栈 Web 应用程序。
StackBlitz 赞助商
Undici v7.1.0:现在拥有稳定的 HTTP/2 支持 — 上周我们推荐了最新的主要 v7 版本 /nodeweekly.com/link/163209/0a4070b383) Node 强大的 HTTP/1.1 客户端。现在,经过一点讨论,他们也将 Undici 的 HTTP/2 支持标记为稳定([文档中有关 HTTP/2 支持的说明](https: //nodeweekly.com/link/163211/0a4070b383))。
马泰奥·科里纳等人。
tldts:从 URL 中提取域名、子域和后缀 — 一个“极快”的库,用于提取主机名、域、公共后缀和来自 URL 的更多内容,具有完整的 Unicode/IDA 支持、类型定义等。
帕里索和博森
📰 分类广告
🚨 在不稳定的测试破坏您的构建之前将其捕获! 了解尽早标记不可靠的测试并保持 CI/CD 管道顺利运行。
📬 Hookdeck:一个无服务器队列,用于在事件驱动应用中可靠地发送、接收、转换、过滤和路由事件。
Pelias 4.0:模块化、独立的“粗略”地理编码器 - 给定地址或地名,这将得出地理坐标,反之亦然。在查找位置方面,它不是超级准确(因此是“粗略”),但对于您的用例来说可能是可以接受的。 此处演示。
珀利阿斯
node-qrcode:在 Node 中生成 QR 码 — 无处不在的二维条形码,可以存储任意数据(例如 URL)。
瑞安·戴
Fastify 4.29 – 快速、低开销的 Node.js Web 框架 4.x 分支的更新。但请注意,v5.1 仍然是绝对最新版本。
better-sqlite 11.7 – 从 Node 和 Electron 使用 SQLite 的好方法。 SQLite 已提升至 v3.47.2。
ExpressoTS 3.0 – 用于服务器端应用的 TypeScript 框架。
Piscina 4.8 – 高效的工作线程池实现。
pnpm 9.15 – 另一种高效的包管理器。
node-cron 3.3 – 按计划运行函数/命令。
AlaSQL.js 4.6 – 同构 JavaScript SQL 数据库。
有我们的链接吗? 回复并告诉我们。我们无法包含所有内容,但我们会查看您发送的所有内容。 谢谢!
赞助: 发送电子邮件至“<kristina@cooperpress.com>”了解详细信息。
由库珀出版社有限公司出版
费尔菲尔德企业中心, 劳斯, LN11 0LS, 英国
发布者