Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(en): merge website/main into babeljs.cn/cn-v7 @ b3f6ea39 #217

Open
wants to merge 42 commits into
base: cn-v7
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
629a534
[FIX] broken link (#2883)
houtan-rocky Mar 27, 2024
90125ef
Update plugin-proposal-optional-chaining-assign.md (#2884)
SharakPL Mar 29, 2024
6678bf7
Add docs for bugfix-firefox-class-in-computed-class-key (#2885)
nicolo-ribaudo Apr 3, 2024
85c50cc
Fix typo in preset-typescript.md (#2886)
askoufis Apr 10, 2024
f151f34
Update Babel types docs (#2887)
babel-bot Apr 29, 2024
d75348f
Docs updates for `transform-runtime` cleanup (#2872)
nicolo-ribaudo Apr 29, 2024
014d07f
Bump Babel 8 node.js requirements (#2888)
JLHwung Apr 30, 2024
c375585
Update plugin-transform-typescript.md (#2889)
Dunqing May 11, 2024
b013f24
docs: update Babel/estree ast difference (#2892)
sxzz Jun 1, 2024
9018180
[Babel 8] Migration guide for `extra.shorthand` (#2891)
liuxingbaoyu Jun 3, 2024
13c9277
fix transform-dynamic-import 404 (#2894)
JLHwung Jun 4, 2024
873907a
fix dynamic-import proposal link (#2896)
JLHwung Jun 4, 2024
806e689
docs: typo in plugin-proposal-decorators (#2900)
fi3ework Jun 19, 2024
d8df2be
Document that regexp plugins only handle regexp literals (#2901)
nicolo-ribaudo Jun 20, 2024
449f038
fix(docsearch): better text contrast for active hit (#2905)
Den-dp Jul 6, 2024
4caa527
docs(options.md): clarify `--source-maps` CLI option (#2898)
jedwards1211 Jul 9, 2024
7242463
docs(assumptions): Remove references to `noObjectSuper` & `noUndeclar…
rschristian Jul 9, 2024
cf9d765
Update plugins-list.md (#2909)
JLHwung Jul 9, 2024
2852ab6
Bump ws from 7.5.9 to 7.5.10 (#2910)
dependabot[bot] Jul 9, 2024
f172a96
Bump webpack-dev-middleware from 5.3.3 to 5.3.4 (#2911)
dependabot[bot] Jul 9, 2024
ba5ca18
Bump braces from 3.0.2 to 3.0.3 (#2912)
dependabot[bot] Jul 9, 2024
22b7ea1
Bump ua-parser-js from 0.7.32 to 0.7.38 (#2913)
dependabot[bot] Jul 9, 2024
4f109ed
Bump follow-redirects from 1.15.3 to 1.15.6 (#2914)
dependabot[bot] Jul 9, 2024
3f0e414
Bump tar from 6.1.13 to 6.2.1 (#2917)
dependabot[bot] Jul 9, 2024
c5d1741
Bump semver from 5.7.1 to 5.7.2 (#2916)
dependabot[bot] Jul 9, 2024
8b91f98
Bump express from 4.18.2 to 4.19.2 (#2915)
dependabot[bot] Jul 9, 2024
97be67f
Add migration docs for removing methods starting with `_` (#2918)
liuxingbaoyu Jul 10, 2024
eab1cea
Fix REPL CORS error (#2920)
liuxingbaoyu Jul 15, 2024
90481ce
[Babel 8] Doc for removing some `NodePath` methods (#2924)
liuxingbaoyu Jul 26, 2024
6ea5704
Add duplicate-named-capturing-groups to ES2025 (#2893)
JLHwung Jul 26, 2024
3dd2641
Add docs for plugin-bugfix-safari-class-field-initializer-scope (#2921)
davidtaylorhq Jul 26, 2024
5c02185
Add docs for `uncheckedRequire` option (#2928)
nicolo-ribaudo Jul 26, 2024
05b6483
Add release post for 7.25.0 (#2927)
nicolo-ribaudo Jul 26, 2024
7d5e624
Remove tag from 7.25.0 blog post
nicolo-ribaudo Jul 26, 2024
7ff59f9
The Safari bug is _before_ 16
nicolo-ribaudo Jul 26, 2024
06d451b
add 7.25.0 to past versions (#2929)
JLHwung Jul 26, 2024
86dee74
Update 2024-07-26-7.25.0.md
nicolo-ribaudo Jul 27, 2024
3d3732c
fix(options): fix nested directives usage (#2908)
Armanio Jul 29, 2024
f9eeddd
fix(options): fix plugin / present entries anchors (#2930)
davidlj95 Jul 31, 2024
287e0ad
improve Babel generator docs (#2931)
JLHwung Aug 1, 2024
b3f6ea3
Updated Broken Link Broken Link #2934 (#2936)
Dwij1704 Aug 11, 2024
cea1b64
docs(en): merging all conflicts
docschina-bot Aug 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 22 additions & 16 deletions _redirects
Original file line number Diff line number Diff line change
Expand Up @@ -65,21 +65,23 @@ https://babel.netlify.com/* https://babeljs.io/:splat 301!
/docs/plugins/external-helpers/ /docs/babel-plugin-external-helpers

# Plugins renamed from -proposal- to -transform-
/docs/babel-plugin-proposal-class-static-block /docs/babel-plugin-transform-class-static-block
/docs/babel-plugin-proposal-private-property-in-object /docs/babel-plugin-transform-private-property-in-object
/docs/babel-plugin-proposal-class-properties /docs/babel-plugin-transform-class-properties
/docs/babel-plugin-proposal-private-methods /docs/babel-plugin-transform-private-methods
/docs/babel-plugin-proposal-numeric-separator /docs/babel-plugin-transform-numeric-separator
/docs/babel-plugin-proposal-logical-assignment-operators /docs/babel-plugin-transform-logical-assignment-operators
/docs/babel-plugin-proposal-nullish-coalescing-operator /docs/babel-plugin-transform-nullish-coalescing-operator
/docs/babel-plugin-proposal-optional-chaining /docs/babel-plugin-transform-optional-chaining
/docs/babel-plugin-proposal-json-strings /docs/babel-plugin-transform-json-strings
/docs/babel-plugin-proposal-optional-catch-binding /docs/babel-plugin-transform-optional-catch-binding
/docs/babel-plugin-proposal-async-generator-functions /docs/babel-plugin-transform-async-generator-functions
/docs/babel-plugin-proposal-object-rest-spread /docs/babel-plugin-transform-object-rest-spread
/docs/babel-plugin-proposal-unicode-property-regex /docs/babel-plugin-transform-unicode-property-regex
/docs/babel-plugin-proposal-unicode-sets-regex /docs/babel-plugin-transform-unicode-sets-regex
/docs/babel-plugin-proposal-export-namespace-from /docs/babel-plugin-transform-export-namespace-from
/docs/babel-plugin-proposal-class-static-block /docs/babel-plugin-transform-class-static-block
/docs/babel-plugin-proposal-private-property-in-object /docs/babel-plugin-transform-private-property-in-object
/docs/babel-plugin-proposal-class-properties /docs/babel-plugin-transform-class-properties
/docs/babel-plugin-proposal-private-methods /docs/babel-plugin-transform-private-methods
/docs/babel-plugin-proposal-numeric-separator /docs/babel-plugin-transform-numeric-separator
/docs/babel-plugin-proposal-dynamic-import /docs/babel-plugin-transform-dynamic-import
/docs/babel-plugin-proposal-logical-assignment-operators /docs/babel-plugin-transform-logical-assignment-operators
/docs/babel-plugin-proposal-nullish-coalescing-operator /docs/babel-plugin-transform-nullish-coalescing-operator
/docs/babel-plugin-proposal-optional-chaining /docs/babel-plugin-transform-optional-chaining
/docs/babel-plugin-proposal-json-strings /docs/babel-plugin-transform-json-strings
/docs/babel-plugin-proposal-optional-catch-binding /docs/babel-plugin-transform-optional-catch-binding
/docs/babel-plugin-proposal-async-generator-functions /docs/babel-plugin-transform-async-generator-functions
/docs/babel-plugin-proposal-object-rest-spread /docs/babel-plugin-transform-object-rest-spread
/docs/babel-plugin-proposal-unicode-property-regex /docs/babel-plugin-transform-unicode-property-regex
/docs/babel-plugin-proposal-unicode-sets-regex /docs/babel-plugin-transform-unicode-sets-regex
/docs/babel-plugin-proposal-export-namespace-from /docs/babel-plugin-transform-export-namespace-from
/docs/babel-plugin-proposal-duplicate-named-capturing-groups-regex /docs/babel-plugin-transform-duplicate-named-capturing-groups-regex

# Legacy redirects
/docs/en/babel-plugin-transform-decorators /docs/babel-plugin-proposal-decorators
Expand All @@ -92,8 +94,9 @@ https://babel.netlify.com/* https://babeljs.io/:splat 301!
/docs/en/next/tools/* /setup

# Blog rewrites
/7.25.0 /blog/2024/07/26/7.25.0
/7.24.0 /blog/2024/02/28/7.24.0
/7.23.0 /blog/2023/09/25/7.22.0
/7.23.0 /blog/2023/09/25/7.23.0
/7.22.0 /blog/2023/05/26/7.22.0
/7.21.0 /blog/2023/02/20/7.21.0
/7.20.0 /blog/2022/10/27/7.20.0
Expand Down Expand Up @@ -139,3 +142,6 @@ https://babel.netlify.com/* https://babeljs.io/:splat 301!
# Docusaurus v1 compat

/docs/en/* /docs/:splat

# CircleCI CORS
/circleci/api/* https://circleci.com/api/v1.1/project/github/babel/babel/:splat 200
2 changes: 0 additions & 2 deletions docs/assumptions.md
Original file line number Diff line number Diff line change
Expand Up @@ -434,8 +434,6 @@ class Child extends Parent {
"mutableTemplateObject": true,
"noClassCalls": true,
"noDocumentAll": true,
"noObjectSuper": true,
"noUndeclaredVariablesCheck": true,
"objectRestNoSymbols": true,
"privateFieldsAsProperties": true,
"pureGetters": true,
Expand Down
21 changes: 20 additions & 1 deletion docs/generator.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ id: babel-generator
title: "@babel/generator"
---

> Turns an AST into code.
> Turns Babel AST into code.

## Install

Expand Down Expand Up @@ -33,6 +33,25 @@ const output = generate(
The symbols like white spaces or new line characters are not preserved in the AST. When Babel generator prints code from the AST, the output format is not guaranteed.
:::

### Parser plugins support
Babel generator supports all the listed [Babel parser plugins](./parser.md#plugins) except `estree`. Note that parser plugins do not transform the code. For example,
if you pass JSX `<div></div>` to babel generator, the result will still contain the `div` JSX element.

```js title="JavaScript"
import { parse } from "@babel/parser";
import generate from "@babel/generator";

const code = "const Example = () => <div>example</div>";
const ast = parse(code, { plugins: ["jsx" ] });

const output = generate(
ast,
);

// true
output.includes("<div>");
```

## Options

<details>
Expand Down
11 changes: 6 additions & 5 deletions docs/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ babelrcRoots: [

### `plugins`

Type: `Array<PluginEntry | Plugin>` ([`PluginEntry`](#plugin-preset-entries))<br />
Type: `Array<PluginEntry | Plugin>` ([`PluginEntry`](#pluginpreset-entries))<br />
Default: `[]`<br />

An array of plugins to activate when processing this file. For more information on how
Expand All @@ -295,7 +295,7 @@ representation of a plugin or preset, you should use [`babel.createConfigItem()`

### `presets`

Type: `Array<PresetEntry>` ([`PresetEntry`](#plugin-preset-entries))<br />
Type: `Array<PresetEntry>` ([`PresetEntry`](#pluginpreset-entries))<br />
Default: `[]`<br />

An array of presets to activate when processing this file. For more information on how
Expand Down Expand Up @@ -365,7 +365,7 @@ If a minor version is not specified, Babel will interpret it as `MAJOR.0`. For e

#### No targets

:::babel7
::::babel7

When no targets are specified: Babel will assume you are targeting the oldest browsers possible. For example, `@babel/preset-env` will transform all ES2015-ES2020 code to be ES5 compatible.

Expand All @@ -389,7 +389,7 @@ Because of this, Babel's behavior is different than [browserslist](https://githu

We recognize this isn’t ideal and will be revisiting this in Babel v8.

:::
::::

:::babel8

Expand Down Expand Up @@ -612,7 +612,8 @@ Default: `false`<br />
- `"inline"` to generate a sourcemap and append it as a data URL to the end of the code, but not include it in the result object.
- `"both"` is the same as inline, but will include the map in the result object.

`@babel/cli` overloads some of these to also affect how maps are written to disk:
Options in configuration files have no effect on whether `@babel/cli` writes files separate `.map` files to disk.
When the `--source-maps` CLI option is passed to `@babel/cli` it will also control whether `.map` files are written:

- `true` will write the map to a `.map` file on disk
- `"inline"` will write the file directly, so it will have a `data:` containing the map
Expand Down
10 changes: 7 additions & 3 deletions docs/parser.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,11 @@ It is based on [ESTree spec][] with the following deviations:
- [Program][] and [BlockStatement][] contain additional `directives` field with [Directive][] and [DirectiveLiteral][]
- [ClassMethod][], [ClassPrivateMethod][], [ObjectProperty][], and [ObjectMethod][] value property's properties in [FunctionExpression][] is coerced/brought into the main method node.
- [ChainExpression][] is replaced with [OptionalMemberExpression][] and [OptionalCallExpression][]
- [ImportExpression][] is replaced with a [CallExpression][] whose `callee` is an [Import] node.
- [ImportExpression][] is replaced with a [CallExpression][] whose `callee` is an [Import] node. This change will be reversed in Babel 8.
- [ExportAllDeclaration][] with `exported` field is replaced with an [ExportNamedDeclaration][] containing an [ExportNamespaceSpecifier][] node.

:::tip
There is now an `estree` plugin which reverts these deviations
:::note
The `estree` plugin can revert these deviations. Use it only if you are passing Babel AST to other ESTree-compliant tools.
:::

AST for JSX code is based on [Facebook JSX AST][].
Expand All @@ -134,6 +135,7 @@ AST for JSX code is based on [Facebook JSX AST][].
[propertydefinition]: https://github.com/estree/estree/blob/master/es2022.md#propertydefinition
[chainexpression]: https://github.com/estree/estree/blob/master/es2020.md#chainexpression
[importexpression]: https://github.com/estree/estree/blob/master/es2020.md#importexpression
[exportalldeclaration]: https://github.com/estree/estree/blob/master/es2020.md#exportalldeclaration
[privateidentifier]: https://github.com/estree/estree/blob/master/es2022.md#privateidentifier
[stringliteral]: https://github.com/babel/babel/tree/main/packages/babel-parser/ast/spec.md#stringliteral
[numericliteral]: https://github.com/babel/babel/tree/main/packages/babel-parser/ast/spec.md#numericliteral
Expand All @@ -157,6 +159,8 @@ AST for JSX code is based on [Facebook JSX AST][].
[optionalcallexpression]: https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#optionalcallexpression
[callexpression]: https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#callexpression
[import]: https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#import
[exportnameddeclaration]: https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#exportnameddeclaration
[exportnamespacespecifier]: https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#exportnamespacespecifier
[facebook jsx ast]: https://github.com/facebook/jsx/blob/master/AST.md

### Semver
Expand Down
45 changes: 45 additions & 0 deletions docs/plugin-bugfix-firefox-class-in-computed-class-key.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
id: babel-plugin-bugfix-firefox-class-in-computed-class-key
title: "@babel/plugin-bugfix-firefox-class-in-computed-class-key"
sidebar_label: bugfix-firefox-class-in-computed-class-key
---

This bugfix plugin transforms classes inside computed keys of other classes to workaround a [SpiderMonkey bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1887677) with private class elements.

:::tip
This plugin is included in `@babel/preset-env`, and Babel will automatically enable this plugin for you when your `targets` are affected by the browser bug.
:::

:::warning
Terser versions older than 5.30.2 will undo the transform done by this plugin. Make sure to use at least version 5.30.2, or set the Terser's [`compress.inline`](https://terser.org/docs/options/#compress-options) option to `false`.
:::

## Installation

```shell npm2yarn
npm install --save-dev @babel/plugin-bugfix-firefox-class-in-computed-class-key
```

## Usage

### With a configuration file (Recommended)

```json title="babel.config.json"
{
"plugins": ["@babel/plugin-bugfix-firefox-class-in-computed-class-key"]
}
```

### Via CLI

```sh title="Shell"
babel --plugins @babel/plugin-bugfix-firefox-class-in-computed-class-key script.js
```

### Via Node API

```js title="JavaScript"
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-bugfix-firefox-class-in-computed-class-key"],
});
```
41 changes: 41 additions & 0 deletions docs/plugin-bugfix-safari-class-field-initializer-scope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
id: babel-plugin-bugfix-safari-class-field-initializer-scope
title: "@babel/plugin-bugfix-safari-class-field-initializer-scope"
sidebar_label: bugfix-safari-class-field-initializer-scope
---

This bugfix plugin wraps some class field initializers with an IIFE to workaround [a WebKit bug](https://webkit.org/b/236843) which affects Safari 15.

:::tip
This plugin is included in `@babel/preset-env`, and Babel will automatically enable this plugin for you when your `targets` are affected by the browser bug.
:::

## Installation

```shell npm2yarn
npm install --save-dev @babel/plugin-bugfix-safari-class-field-initializer-scope
```

## Usage

### With a configuration file (Recommended)

```json title="babel.config.json"
{
"plugins": ["@babel/plugin-bugfix-safari-class-field-initializer-scope"]
}
```

### Via CLI

```sh title="Shell"
babel --plugins @babel/plugin-bugfix-safari-class-field-initializer-scope script.js
```

### Via Node API

```js title="JavaScript"
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-bugfix-safari-class-field-initializer-scope"],
});
```
2 changes: 1 addition & 1 deletion docs/plugin-proposal-decorators.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ Selects the decorators proposal to use:
`"2023-11"`, `"2023-05"`, `"2023-01"`, `"2022-03"`, `"2021-12"`, `"2018-09"` or `"legacy"`.

Selects the decorators proposal to use:
- `"2023-11"` is the proposal version after the updates that reached consensus in the November 2023 TC30 meetings, intergrating [this change](https://github.com/pzuraq/ecma262/pull/12)
- `"2023-11"` is the proposal version after the updates that reached consensus in the November 2023 TC39 meetings, intergrating [this change](https://github.com/pzuraq/ecma262/pull/12)
- `"2023-05"` is the proposal version after the updates that reached consensus in the March and May 2023 TC39 meetings, integrating [these changes](https://github.com/pzuraq/ecma262/compare/e86128e13b63a3c2efc3728f76c8332756752b02...c4465e44d514c6c1dba810487ec2721ccd6b08f9).
- `"2023-01"` is the proposal version after the updates that reached consensus in the January 2023 TC39 meeting, integrating [`pzuraq/ecma262#4`](https://github.com/pzuraq/ecma262/pull/4).
- `"2022-03"` is the proposal version that reached consensus for Stage 3 in the March 2022 TC39 meeting. You can read more about it at [`tc39/proposal-decorators@8ca65c046d`](https://github.com/tc39/proposal-decorators/tree/8ca65c046dd5e9aa3846a1fe5df343a6f7efd9f8).
Expand Down
18 changes: 12 additions & 6 deletions docs/plugin-proposal-duplicate-named-capturing-groups-regex.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
---
id: babel-plugin-proposal-duplicate-named-capturing-groups-regex
title: "@babel/plugin-proposal-duplicate-named-capturing-groups-regex"
id: babel-plugin-transform-duplicate-named-capturing-groups-regex
title: "@babel/plugin-transform-duplicate-named-capturing-groups-regex"
sidebar_label: duplicate-named-capturing-groups-regex
---

:::info
This plugin is included in `@babel/preset-env`, in [ES2025](https://github.com/tc39/proposals/blob/master/finished-proposals.md).
:::

This plugin transforms regular expression _literals_ to support duplicate named capturing groups. It does not patch the `new RegExp` constructor, since its arguments cannot be pre-transformed statically: to handle runtime behavior of functions/classes, you will need to use a polyfill instead.

## Examples

**In**
Expand All @@ -28,7 +34,7 @@ console.log(re.exec("02-1999").groups.year);
## Installation

```shell npm2yarn
npm install --save-dev @babel/plugin-proposal-duplicate-named-capturing-groups-regex
npm install --save-dev @babel/plugin-transform-duplicate-named-capturing-groups-regex
```

## Usage
Expand All @@ -37,21 +43,21 @@ npm install --save-dev @babel/plugin-proposal-duplicate-named-capturing-groups-r

```json title="babel.config.json"
{
"plugins": ["@babel/plugin-proposal-duplicate-named-capturing-groups-regex"]
"plugins": ["@babel/plugin-transform-duplicate-named-capturing-groups-regex"]
}
```

### Via CLI

```sh title="Shell"
babel --plugins @babel/plugin-proposal-duplicate-named-capturing-groups-regex script.js
babel --plugins @babel/plugin-transform-duplicate-named-capturing-groups-regex script.js
```

### Via Node API

```js title="JavaScript"
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-proposal-duplicate-named-capturing-groups-regex"],
plugins: ["@babel/plugin-transform-duplicate-named-capturing-groups-regex"],
});
```

Expand Down
36 changes: 30 additions & 6 deletions docs/plugin-proposal-json-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,7 @@ npm install --save-dev @babel/plugin-proposal-json-modules

```json title="babel.config.json"
{
"plugins": [
"@babel/plugin-proposal-json-modules"
]
"plugins": ["@babel/plugin-proposal-json-modules"]
}
```

Expand All @@ -88,12 +86,38 @@ babel --plugins=@babel/plugin-proposal-json-modules script.js

```js title="JavaScript"
require("@babel/core").transformSync("code", {
plugins: [
"@babel/plugin-proposal-json-modules"
],
plugins: ["@babel/plugin-proposal-json-modules"],
});
```

## Options

### `uncheckedRequire`

Type: `boolean`<br />
Default: `false`<br />
Added in `v7.25.0`

When set to `true`, the plugin will generate a simpler output by using `require` directly to import the JSON file. When targeting CommonJS, this option leads to output that is easier to analyze for bundlers but doesn't check that the module being imported is actually JSON:

**In**

```js
import data from "./data.json" with { type: "json" };
```

**Out (without `uncheckedRequire: true`)**

```js
const data = JSON.parse(require("fs").readFileSync(require.resolve("./data.json")));
```

**Out (with `uncheckedRequire: true`)**

```js
const data = require("./data.json");
```

## References

- [Proposal: JSON Modules](https://github.com/tc39/proposal-json-modules/)
10 changes: 6 additions & 4 deletions docs/plugin-proposal-optional-chaining-assign.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@ npm install --save-dev @babel/plugin-proposal-optional-chaining-assign
```json title="babel.config.json"
{
"plugins": [
"@babel/plugin-proposal-optional-chaining-assign",
{
"version": "2023-07"
}
[
"@babel/plugin-proposal-optional-chaining-assign",
{
"version": "2023-07"
}
]
]
}
```
Expand Down
Loading
Loading