Now vibe coding, so learning hammer FE ?
《npm 上 ESM 与 CJS 的占比变迁数据》

标签:#JavaScript #NodeJS #ESM #CommonJS #npm #模块系统

总结:
该项目持续追踪 npm 高影响力(热门)包中 ESM、CJS、Dual(双模式)及 Faux(伪 ESM)的占比变化。数据显示,纯 ESM 包从 2021 年 8 月的 6% 增长至 2026 年 6 月的 16%;Dual 模式包增长最为迅猛(从 1.7% 到 22%),成为主流过渡方案;而纯 CJS 虽仍占最大份额(52%),但占比持续下降。2025 年底样本量骤增,反映 npm 生态整体扩张。

文章要点:
1. ESM 稳步增长但尚未过半**:从 2021 年 341 个包(6.1%)增至 2026 年 2590 个(16.0%),五年增长约 2.6 倍,但仍是少数派
2. **Dual 模式成为最大赢家**:从 95 个(1.7%)暴涨至 3574 个(22.0%),说明"同时支持
ESM 和 CJS"已成为库作者最务实的选择
3. **纯 CJS 仍是主流但份额萎缩**:从 77.4% 降至 51.6%,虽然绝对数量增加,但相对占比持续被侵蚀
4.
"伪 ESM"(Faux)长期僵持**:表面用 ESM 语法但实际编译为 CJS 的包,占比一直维持在 10% 左右,说明彻底转型仍有阻力
5. **生态规模急剧扩张**:样本包总数从 5617 个增至 16231 个,2025 年底几乎翻倍,反映 npm 整体生态的蓬勃发展
6. **数据方法论透明**:基于 npm-high-impact 热门包分析,爬取 package.jsonlatest 版本,约 15 分钟完成,结果以 CSV 和 SVG 可视化呈现

URL:
https://github.com/wooorm/npm-esm-vs-cjs#data GitHub - wooorm/npm-esm-vs-cjs: Data on the share of ESM vs CJS on the public npm registry
《TypeScript 6.0 正式发布:迈向原生编译器的重要桥梁》

标签:#前端 #TypeScript #TS6 #TS7 #ESM #NodeJS #Compiler

总结:

TypeScript 6.0 是连接 5.9 与即将发布的 Go 语言重写版 7.0 的关键过渡版本,也是基于当前 JavaScript 代码库的最后一个主要版本。本次更新带来多项实用新特性,包括更智能的无 this 函数类型推断、支持 #/ 开头的子路径导入、内置 Temporal API 类型、Map 的 getOrInsert 方法等。同时,大量旧配置项被标记为废弃(如 target: es5`、`baseUrl`、AMD/UMD 模块等),`strictmodule 等选项的默认值也更现代化。这些调整旨在帮助开发者提前适配 TypeScript 7.0 的全新架构。

文章要点:

- 过渡版本定位**:TS 6.0 是基于 JS 代码库的最后一个版本,TS 7.0(Go 重写版)已接近完成,6.0 的改动主要为 7.0 铺路
- **类型推断更聪明**:不再把未使用 `this` 的方法语法函数视为上下文敏感函数,让属性顺序不影响类型推导,写代码更随心所欲
- **子路径导入更简洁**:终于支持 `#/*` 这种干净的别名写法,告别之前必须写 `
#root/*` 的冗余,和打包工具里的 `@/` 习惯更接近了
- **全新内置类型**:Temporal API 正式入驻(处理日期时间更靠谱),Map 新增 `getOrInsert` 和 `getOrInsertComputed` 方法,告别繁琐的"有则取无则设"模式
- **配置默认值现代化**:`strict` 默认开启,`module` 默认 `esnext`,`target` 默认当前年份(es2025),新项目开箱即用更严格、更现代
- **性能优化相关**:`types` 默认改为空数组(需显式声明如 `["node"]`),`libReplacement` 默认关闭,构建速度有望提升 20-50%
- **大量废弃项需留意**:`target: es5`、`baseUrl`、`moduleResolution node`、AMD/UMD/SystemJS 模块、`outFile`、`module` 关键字声明命名空间等都将退出历史舞台,建议尽早迁移
- **迁移辅助工具**:提供 `--stableTypeOrdering` 标志帮助对比 6.0 与 7.0 的差异,`ts5to6` 工具可自动调整 `baseUrl` 和 `rootDir` 配置

**文章URL:

https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/ Announcing TypeScript 6.0
 
 
Back to Top