Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ES2024+ Node Playground

一个带 Babel 的 Node 环境,便于快速尝试 ES2024 及接近阶段的新特性(含 polyfill)。

要求

  • Node 18.18+、20.9+ 或 22+

安装

npm i

运行所有示例(即时转译)

npm run example

按名称筛选(示例标题或函数名包含关键字):

# 环境变量筛选
EXAMPLE="es2024" npm run example

# 或命令行参数
npm run example -- --filter=groupby

开发模式(监听 src 变动)

npm run dev

构建到 dist 并运行

npm 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@3useBuiltIns: usage 按需注入,尽量减少污染;同时开启 proposals 以覆盖 ES2024 所需能力。
  • 输出/运行以 CommonJS 为主,便于 Node 下调试;如需演示顶层 await 的原生 ESM 版本,我可以帮你加一个独立入口与脚本。
  • 极前沿提案默认不启用 Babel 插件,当前以说明为主;如需可新增编译配置与示例文件。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages