685 - Node、Deno 的作者详细介绍了 JSR 的诞生理念和目标

本期看点:Node、Deno 的作者不久之前发布了 JSR ,并写了篇文章详细介绍了它的诞生理念和目标。Node 在这周发布了 v22,带来了一些重要的增强功能。pnpm 也发布了 v9.0,放弃了对 Node 16 和 17 的兼容性。
编辑:TimLiloveloki

🔥 本周热门

JSR 不是另一个包管理器 —- 当 Ryan 创建 Node 时,JavaScript 还没有包或标准模块系统。随着 npm 和 CommonJS 的流行,又诞生了像 Yarn 或 pnpm 这样在某些领域扩展了 npm 的工具,但在今天的 ES 模块时代,是时候进行转变了。JSR 不是一个新的 npm,而是 npm 的一种补充,使之更加安全且为现代开发量身定制。

Ryan Dahl

Node.js v22(Current)发布 —- 最新的、尖端的、主要版本的 Node 带来了一些关键的增强功能。v22 成为新的 ‘Current’ 发布版本(在 10 月份成为活跃的 LTS)。它增加了对 require-ing ESM 的支持,获得了一个内置的 WebSocket 客户端,升级到 V8 12.4,并包括了 一个任务运行器(例如 node --run task_name)。这篇博客文章 对此进行了更深入的探讨。

Rafael Gonzaga

pnpm v9.0:以效率为中心的包管理器 —- pnpm 长期以来一直是那些希望节省磁盘空间和 CPU 周期(或者因为它的优秀的 monorepo 支持)的人们的一个绝佳选择,同时保持了 npm 的大部分优点。v9.0 放弃了对 Node 16 和 17 的兼容性、尊重 package.json 中的 packageManager 字段、做了一些默认配置的更改以及采用了 Lockfile v9。

pnpm

快讯:

  • 🙈 4 月 24 日是 无 JavaScript 日,这是一个完全没有 JavaScript 的日子。目的是测试下你的网站能不能脱离 JavaScript 运行。

  • 🇫🇷 dotJS 2024 是一个将于 6 月 27 日在法国巴黎举行的 JavaScript 会议。到目前为止,演讲者名单相当吸引人。

  • rcompat 是一个有趣的服务器 JS 互操作性和运行时兼容性层,让你可以避免 Node、Deno 和 Bun 之间的差异。

📒  教程与趣事

迁移项目到 Bun 的故事 —- Render 的一位工程师 Eric,详细介绍了他如何将他的 Sveld 项目迁移到 Bun(在过程中替换了 Yarn 和 Vitest),包括他遇到的一些小问题,以及最后的性能提升测试结果。

Eric Liu

2024 年前端开发者/工程师手册 —- 一份关于当前 webdev 景观的指南,涵盖了如何快速掌握编辑器、CSS、UX、UI、命令行、工具和框架、性能、可访问性等主题。

Cody Lindley

HTML 属性 vs DOM 属性 —- 它们是不同的,但经常被捆绑在一起。Jake 描述了它们的区别,以及为什么这很重要。

Jake Archibald

📄 使用 new URL() 的问题,以及 URL.parse() 如何解决这个问题

📄 Intl.Segmenter 对象现在是基线的一部分 – 可互操作的,区域敏感的文本分割。

📄 Angular 中的事件分发 – 新的事件委托系统的内部运作原理。

📄 TypeScript 推断类型谓词特性的诞生全过程

📄 向现有的 TypeScript 项目添加 ESLint 和自动修复

📺 在 React 和 Svelte 中使用 TC39 提议的信号

📄 如何对 script 标签中的 JavaScript 进行转义

🛠  代码与工具

📊 Unovis:一个模块化的数据可视化框架 —- 适用于 React、Angular、Svelte、Vue 或普通的 JavaScript/TypeScript。处理各种事情,从 Sankey 图到地图、图表、和弦图,以及传统的线/面图。v1.4 版本 增加了以灵活方式注释可视化的支持。如果你想深入了解,这里有 一个示例画廊(带有代码)。

F5, Inc.

ReScript v11.1 发布,改进了 JSX 支持 —- ReScript 是一个受 OCaml 启发的、类型化的语言,它编译为 JavaScript,并且语言中内置了 JSX 转换。JSX 支持以前仅用于 React 的用例,但现在也适用于 Vue、Preact 和其他方法。

ReScript 项目

typed-xlsx:功能丰富的类型安全 Excel 报告 —- 定义一个强类型的电子表格模式,然后直接从 JavaScript/TypeScript 填充和处理表格,例如为用户生成报告 - 示例代码。基于 SheetJS 封装。GitHub 仓库

Cyprien Thao

Devalue v5.0:类似于 JSON.stringify,但是.. —- “当 JSON.stringify 无法完成任务时,它可以完成任务。” 即,它可以处理循环和重复的引用、正则表达式、MapSet、自定义类型等等。

Rich Harris

imask.js v7.6.0:一个 Vanilla JavaScript 输入掩码 —- 防止用户输入无效值。根据需要,为 Vue、Angular、React、Svelte 和 Solid 提供插件。

imaskjs

browser-or-node v3.0:找出你的代码在哪里运行 —- 提供了一种简单的方法来判断你的代码当前是在浏览器中运行、在 Node 中运行、在 Web Worker 中运行,还是在 Deno 中运行。支持 ESM 和 CJS 导入。

Dinesh Pandiyan

版本发布:

© 2025 印记中文 | 粤ICP备17008907号-2