本期话题包含 Deno、React、Node.js、日期处理、测试、npm 包、Astro、性能优化、monorepo 等内容。
- JSR: Deno 团队的新 JavaScript 包注册表我们了解到了什么 - Deno 团队推出的新型 JavaScript 包注册表 JSR,旨在解决 npm 的限制,但 JavaScript 社区担忧生态系统可能因此而分裂。 JSR 拥有多项与 npm 显著不同的技术特点,而且非官方宣布将于 2023 年 SeattleJS Conf 上推出。该注册表强调 TypeScript 优先环境、性能和易用性,以及模块安全性等方面,并获得开发者社区的积极响应。尽管 JSR 提供新的方法,但它也随之带来的生态系统分裂的担忧, 然而,它承诺保持与 npm/Node 的兼容性,以减少可能的负面影响。
- React 实验室:我们在 2024 年 2 月份的工作动态 - React 团队分享了他们在 React 编译器方面的进展,这个编译器现在已经在 instagram.com 的生产环境中使用,并且团队正在为首次开源发布做准备。他们还介绍了新的“Actions”功能,这使开发者能够向 DOM 元素如 `` 传递函数,来同步或异步地处理数据。React Canary 现在可用,将在下一个 React 版本中发布。此外,他们宣布 React 19 将是一个主要版本,添加了对 Web 组件的支持等多个需求已久的改进。
- Node.js 2023:一年回望 - 文章总结了2023年Node.js领域的成就,内容涵盖3023年度的提交活动、发布情况和主要更新。作者还讨论了Node.js的性能演进、安全性增强以及新依赖的引入等话题。
- Tempo:JavaScript中处理日期的最简单方式 - Tempo是一个基于Intl.DateTimeFormat构建的JavaScript库,用于格式化、解析和操作日期。它以小巧易用著称,支持时区操作。与其他提供自定义日期原语的库不同,Tempo是围绕标准Date对象的一系列工具集。安装简单,支持语言环境敏感的日期和时间格式化,可以用来转换各种日期字符串格式,以及调整日期和获取日期信息,适用于构建需要精细化日期控制的应用程序。
- 加速无干扰的 JavaScript 测试 - Wallaby.js 是一个提升开发者生产力的工具,它能够在你输入代码的同时立即运行你的 JavaScript 和 TypeScript 测试,并在你的IDE中直接标出结果。这个工具因为能够计算和运行受代码变动影响的最少测试集合而即时显示测试执行结果,这种做法大大增加了效率,是其他测试工具无法做到的。
- 使用 Puppeteer 测试网络蓝牙 - 自 Chrome 56 起,网络蓝牙便已得到支持,让开发者能够编写可直接与用户的蓝牙设备通信的 Web 应用。例如,Espruino 网页编辑器能够将代码上传到兼容的蓝牙设备。现在可以使用 Puppeteer 测试这些应用。 这篇博文详细介绍了如何使用 Puppeteer 运行和测试支持蓝牙的 Web 应用。其中的关键部分是 Puppeteer 能够操作 Chrome 的蓝牙设备选择器。
- 现代 JavaScript 库起步指南 - 文章提供了如何使用 TypeScript、测试、GitHub Actions 以及自动发布到 NPM 来发布一个库的指南。介绍了一套现代 JavaScript 库的开发和发布流程,强调了包括 CI/CD 管道、单元测试编写和 TypeScript 类型发布的重要性。作者通过亲身经验和例子,详细说明了如何配置 package.json、tsconfig.json 以及如何使用现代工具提高开发效率。
- 休息一下吧,来看看Astro对React的不同 - Paul Scanlon 使用了若干示例(包括代码)来比较React和Qwik。他的结论是Qwik值得作为React的一个替代品进行探索。Qwik是一种全新的web框架,它被设计为从头开始以适应客户端和服务器都能工作的框架的不断增长的需求。Qwik的体积比React更轻,也没有Vanilla那么冗长,不需要任何额外的'use client'或'client:load'指令,它足够智能,能够(在必要时)在服务器上执行,并在客户端恢复执行。
- 行业中最快、最灵活的 JavaScript 数据网格 - Wijmo 的 FlexGrid JavaScript 数据网格因其卓越的灵活性和速度而著称。它提供了熟悉的、类似 Excel 的用户体验、定制化的单元格模板和主题。FlexGrid 支持客户端和服务器端数据绑定、编辑、Excel 式过滤、自定义排序、聚合行、选择功能,支持 Excel、CSV 和 PDF 格式的数据。它使用 TypeScript 编写,提供面向对象的 C# 风格的编程体验,并且支持在 Visual Studio 中实现完整的 IntelliSense。此外,Wijmo 的 FlexGrid 还通过了内容安全策略 (CSP) 的遵从性测试,不会破坏 JavaScript 应用程序的安全性,并且支持全球化和本地化设定。
- 从多到一:将我们的 JavaScript 代码移动到 monorepo - 文章讲述了 Aha! 团队将他们的 JavaScript 代码从多个私有 npm 包整合到单一的仓库(monorepo)的经历。他们分享了转向使用单体仓库架构的动机,例如简化了代码审查和部署流程、提高了开发者体验,并详述了其实施过程中的各种目标和挑战。文章还阐明了保持 git 历史的重要性,以及选择了哪些工具来实现他们的需求,最终决定使用 Turborepo 工具来管理他们的单体仓库。