Skip to main content

特性时间表

我们在每个 Babel 版本中引入了哪些主要新功能?本页面包含每个小版本的简短概要,或者你可以在 GitHub 上查看完整的更新日志! 此外,你可以使用这个时间线来追踪其他一些重要工作,比如 babel-polyfills 项目。

🌐 Which major new features did we introduce in each Babel version? This page includes a very short summary for each minor release, or you can read the full changelog on GitHub! Additionally, use this timeline to track some other important efforts, such as the babel-polyfills project.

  1. Babel 8.0.0​

    博客文章,迁移指南

    • 停止支持不再维护的 Node 版本:6、8、10、12、14、16、18、20、23、25
    • 把 Babel 自己的代码库作为 ESM 发布
    • 默认把代码转译成 ESM 和现代目标环境
    • 弃用 loose 和 spec 选项,改用 assumptions
    • 从 @babel/preset-env 和 @babel/plugin-transform-runtime 移除 core-js 支持,改用 babel-plugin-polyfill-corejs3
  2. Babel 7.29.0​

    博客文章

  3. Babel 7.28.0​

    博客文章

  4. Babel 7.26.0​

    博客文章

  5. Babel 7.25.0​

    博客文章

  6. Babel 7.24.0​

    博客文章

  7. Babel 7.23.0​

    博客文章

  8. Babel 7.22.0​

    博客文章

    • 默认启用第四阶段 正则表达式 v 标志 提案

    • 支持显式资源管理 提案第3阶段的提案,包括异步版本

      JavaScript
      {
      await using db = connect(databaseURL);
      let user = await db.getUserById(userId);
      await db.createPost(user.name, "Hi! :)");
      } // Automatically close the db
    • 支持在 2023 年 3 月和 2023 年 5 月 TC39 会议上达成共识的 decorators 提案的更新

    • 对 Stage 3 导入属性 提案的解析支持,之前被称为“导入断言”

      JavaScript
      import data from "./data.json" with { type: "json" };
  9. Babel 7.21.0​

    博客文章

  10. Babel 7.20.0​

    博客文章

    • TypeScript 4.9 支持

    • 解析器对显式资源管理阶段2提案的支持

      JavaScript
      {
      using handle = openFile(name, "w+");
      write(handle, "Hi!\n");
      write(handle, ":)\n");
      } // Automatically close the file
    • 解析器对 import reflection 第二阶段提案的支持

      JavaScript
      import module mod from "./mod.js";

      // later ...
      import(mod);

    babel-loader 9.0.0​

    release

  11. Babel 7.19.0​

    博客文章

    • 支持 decorators 提案的第 3 阶段版本

    • 为 重复命名捕获组 第3阶段提案 转换支持

      JavaScript
      /(?<year>\d\d\d\d)-(?<month>\d\d)|(?<month>\d\d)-(?<year>\d\d\d\d)/
  12. Babel 7.18.0​

    博客文章

    • TypeScript 4.7 支持

    • 为 私有解构 第二阶段提案 转变支持

      JavaScript
      class A {
      #x = 2;
      method() {
      const { #x: x } = this;
      }
      }
    • 编译生成器时不再需要手动包含 regenerator-runtime 辅助工具

  13. Babel 7.17.0​

    博客文章

    • 支持新版的 decorators 第二阶段提案

      JavaScript
      class A {
      @reactive #x = 2;

      @logger
      method() {
      this.#x++;
      }
      }
    • 支持RegExp 集合符号和字符串属性第二阶段提案

      JavaScript
      /[\p{RGI_Emoji}&&[\0-\uFFFF]]/v;
    • 解析器对私有解构阶段 2 提案的支持

      JavaScript
      class A {
      #x = 2;
      method() {
      const { #x: x } = this;
      }
      }
  14. Babel 7.16.0​

    博客文章

  15. Babel 7.15.0​

    博客文章

    • 默认启用对 顶层 await 第4阶段提案的解析

      JavaScript
      import db from "db";
      await db.connect();
    • 默认启用私有品牌检查第四阶段提案

      JavaScript
      class A {
      static { initialize(A); } // static block
      #field;
      is(obj) {
      return #field in obj; // private brand check
      }
      }
    • 支持“Hack 风格”的 管道操作符 第二阶段提案

      JavaScript
      const result = "World" |> `Hello, ${%}!` |> alert(%);
    • TypeScript 4.4 支持

  16. Babel 7.14.0​

    博客文章

  17. Babel 7.13.0​

    博客文章

  18. Babel 7.12.0​

    博客文章

  19. Babel 7.11.0​

    博客文章

  20. @babel/eslint-parser​

    博客文章

  21. Babel 7.10.0​

    博客文章

  22. babel-polyfills​

    repository

  23. Babel 7.9.0​

    博客文章

    • @babel/preset-env 中的 bugfixes 选项,用来绕过浏览器的 bug,而不是编译整个功能
    • TypeScript 3.8 支持
    • 支持 Flow declare 类字段
    • 支持自动 JSX 运行时
  24. Babel 7.8.0​

    博客文章

  25. Babel 7.7.0​

    博客文章

    • 解析器对 顶层 await 提案的支持

      JavaScript
      import db from "./database.js";

      await db.connect();
    • 为 @babel/parser 的早期错误添加错误恢复支持

    • 支持 .json 和 .cjs 配置文件

    • TypeScript 3.7 支持

  26. Babel 7.6.0​

    博客文章

    • 对静态私有访问器的支持,属于 静态类功能 提案的一部分

      JavaScript
      class Dog {
      static get #className() { return "Dog"; }
      }
  27. Babel 7.5.0​

    博客文章

    • 支持 F# 管道操作符 提案

      JavaScript
      num |> add(2) |> double
    • TypeScript namespace 支持

  28. Babel 7.4.0​

    博客文章

    • 支持注入 core-js@3 填充

    • 支持部分应用提案

      JavaScript
      strings.map(parseInt(?));
    • 支持静态私有方法,这是 静态类功能 提案的一部分

      JavaScript
      class Dog {
      static #register() { /* ... */ }
      }
    • TypeScript 3.4 支持

  29. Babel 7.3.0​

    博客文章

    • 支持实例私有访问器,它是 私有方法 提案的一部分

      JavaScript
      class Dog {
      get #randomId() { return Math.random(); }
      }
    • 支持智能管道操作符提案

      JavaScript
      num |> add(2, #) |> double
    • 支持正则表达式中的 命名捕获组

      JavaScript
      str.match({String.raw`/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/`})
    • TypeScript 3.2 和 2.9 支持

  30. Babel 7.2.0​

    博客文章

    • 支持实例私有方法,是私有方法提案的一部分

      JavaScript
      class Dog {
      #bark() { console.log("Mew!") }
      }
  31. Babel 7.1.0​

    博客文章

    • 支持 2018 年 9 月指定的 装饰器 提案

      JavaScript
      class Person {
      @autoIncrement age;
      }
    • 对静态私有字段的支持,是静态类功能提案的一部分

      JavaScript
      class Person {
      static #classId = 3;
      }
  32. Babel 7​

    博客文章

    自从它是 2 年的预发布以来,这有更多的变化。

    🌐 This has a lot more changes since it was 2 years of pre-releases.