每次 npm 安装背后的隐藏成本
我们花了十年时间下载各种库来“修复” JavaScript。
我们用 moment.js 处理日期,用 lodash 处理工具函数,用 node-fetch 处理请求。这些都是为了弥补平台功能的不足而采取的权宜之计。
它们在当时很有用,但现在已成了累赘。
到 2026 年,最重要的变革将来自 TC39 和 W3C 等标准制定机构。平台功能终于开始赶上这些库的步伐了。
高级工程师的标志不再是知道该选哪个库,而是知道什么时候根本不需要库。
每个依赖都带有成本: • 增加包体积,减慢页面加载速度。 • 增加团队的认知负担。 • 带来供应链安全风险。
三项新的平台特性正在让旧的依赖项变得过时:
Temporal 旧的 Date 对象存在缺陷。它会导致时区 Bug,且数学运算处理得很差。Temporal 取代了它。它将绝对时间与日历时间分离,让错误的编码方式变得难以实现。如果你开始一个新项目,请停止使用 Date,改用 Temporal。
Iterator Helpers 像 .map() 和 .filter() 这样的标准数组方法在每一步都会创建新数组。这在处理大数据集时会浪费内存。Iterator Helpers 支持惰性求值(lazy evaluation)。它们逐个处理项目,并在找到所需内容时立即停止。这能保持应用的快速运行和高帧率。
Web Streams API 不要再等待整个文件下载完成后才进行处理。传统的 fetch 会将整个响应缓冲在内存中,这会导致内存峰值。Web Streams 允许你随着数据的到达,逐块处理数据。这对于 AI 响应和大型文件处理至关重要。
原生 JavaScript (Vanilla JavaScript) 不再是一种小众选择。它是构建生产级应用性能最高、最安全的方式。平台已经解决了那些曾让库变得必要的难题。
停止修补语言。开始利用平台。
你的生产环境包中,还有哪些功能是浏览器其实已经可以处理的?
