Skip to main content

@babel/plugin-transform-explicit-resource-management

信息

本插件包含在 @babel/preset-envES2026 中。

¥This plugin is included in @babel/preset-env, in ES2026.

这个插件使 Babel 能够使用声明 using handler = await read(); 进行转换。

¥This plugin enables Babel to transform using declarations using handler = await read();.

示例

¥Example

input.js
using handlerSync = openSync();
await using handlerAsync = await openAsync();

将转变为

¥will be transformed to

output.js
try {
var _usingCtx = babelHelpers.usingCtx();
var handlerSync = _usingCtx.u(openSync());
var handlerAsync = _usingCtx.a(await openAsync());
} catch (_) {
_usingCtx.e = _;
} finally {
await _usingCtx.d();
}

在 REPL 上试试

¥Try it on the REPL.

安装

¥Installation

npm install --save-dev @babel/plugin-transform-explicit-resource-management

用法

¥Usage

¥With a configuration file (Recommended)

babel.config.json
{
"plugins": ["@babel/plugin-transform-explicit-resource-management"]
}

通过 CLI

¥Via CLI

Shell
babel --plugins @babel/plugin-transform-explicit-resource-management script.js

通过 Node API

¥Via Node API

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-explicit-resource-management"]
});

参考

¥References