一个带 Babel 的 Node 环境,便于快速尝试 ES2024 及接近阶段的新特性(含 polyfill)。
- Node 18.18+、20.9+ 或 22+
npm inpm run example按名称筛选(示例标题或函数名包含关键字):
# 环境变量筛选
EXAMPLE="es2024" npm run example
# 或命令行参数
npm run example -- --filter=groupbynpm run devnpm run build
npm start- 在
src/examples/新增your-example.js,默认导出一个函数,并在_runner.js里注册。 - 若示例使用到非常新的内置对象/方法,可能需要 Babel 未覆盖的 polyfill,这时可在文件顶部显式
import对应 polyfill 包。
- ES6(2015):语法重塑、模块化与异步对比
- ES7(2016):**、Array.includes
- ES8(2017):Object.entries/values、padStart/padEnd
- ES9(2018):对象 Rest/Spread、for await...of、命名捕获组
- ES10(2019):flat/flatMap、Object.fromEntries、trimStart/End、可省略 catch、Symbol.description
- ES11(2020):?.、??、动态 import、BigInt、Promise.allSettled、globalThis
- ES12(2021):逻辑赋值(||=、&&=、??=)、replaceAll、数字分隔符、Promise.any、WeakRef
- ES2022:类公有/私有字段与方法、.at()、Object.hasOwn、Error cause
- ES2023:findLast/Index、非破坏性数组(toReversed/with)、Hashbang 提示
- ES2024:Object.groupBy、Promise.withResolvers、RegExp v、isWellFormed/toWellFormed、Atomics.waitAsync 提示
- Set 新方法(union/intersection/difference)- 无原生时降级实现
- Array.fromAsync(单独示例)
- Object.groupBy / Map.groupBy(单独示例)
- RegExp v 标志(Unicode sets)
- for await...of(单独示例)
- ES2025 提案预览(Records/Tuples、|>、装饰器、Iterator.range、Set 方法增强)
- 通过
@babel/preset-env+core-js@3的useBuiltIns: usage按需注入,尽量减少污染;同时开启 proposals 以覆盖 ES2024 所需能力。 - 输出/运行以 CommonJS 为主,便于 Node 下调试;如需演示顶层 await 的原生 ESM 版本,我可以帮你加一个独立入口与脚本。
- 极前沿提案默认不启用 Babel 插件,当前以说明为主;如需可新增编译配置与示例文件。