跳至主内容

@babel/plugin-transform-react-jsx-development

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

信息

此插件已包含在 @babel/preset-react 中。

此插件是 @babel/plugin-transform-react-jsx 的开发版本,旨在提供增强的验证错误信息和精确的代码位置信息,便于调试 React 应用。请注意该插件仅适用于开发环境,因为其生成的输出内容远多于生产环境构建。

如果您正在使用 @babel/preset-react,通过启用 development 选项即可自动激活此插件,无需单独安装。

示例

输入

input.jsx
const profile = (
<div>
<img src="avatar.png" className="profile" />
<h3>{[user.firstName, user.lastName].join(" ")}</h3>
</div>
);

输出

output.js
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";

const _jsxFileName = "input.jsx";
const profile = _jsxDEV("div", {
children: [
_jsxDEV("img", {
src: "avatar.png",
className: "profile",
}, undefined, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 5 }, this),
_jsxDEV("h3", {
children: [user.firstName, user.lastName].join(" "),
}, undefined, false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 5 }, this),
]},
undefined, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 3 }, this
);

安装

npm install --save-dev @babel/plugin-transform-react-jsx-development

用法

通过配置文件(推荐)

无配置选项时:

babel.config.json
{
"plugins": ["@babel/plugin-transform-react-jsx-development"]
}

使用配置选项时:

babel.config.json
{
"plugins": [
[
"@babel/plugin-transform-react-jsx-development",
{
"throwIfNamespace": false, // defaults to true
"runtime": "automatic", // defaults to classic
"importSource": "custom-jsx-library" // defaults to react
}
]
]
}

通过命令行

Shell
babel --plugins @babel/plugin-transform-react-jsx-development script.js

通过 Node API

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-react-jsx-development"],
});

配置选项

该插件的配置选项与 @babel/plugin-transform-react-jsx 完全一致。