# @acusti/vite-plugin-react-compiler 中文文档

规范地址：https://npmcn.com/package/%40acusti/vite-plugin-react-compiler/

版本：0\.11\.0
npm 元数据更新时间：2026-10-29T20:10:11.305Z
中文译文更新时间：2026-11-06T21:14:09.767Z
软件包许可：Unlicense

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40acusti/vite-plugin-react-compiler
原文对照：https://npmcn.com/package/%40acusti/vite-plugin-react-compiler/?lang=original
项目主页：https://github.com/acusti/uikit/tree/main/packages/vite-plugin-react-compiler#readme
源码仓库：https://github.com/acusti/uikit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：21.2 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：vite \>=8\.0\.0
- 首次发布：2026-08-16T15:29:17.243Z
- 最新版本发布：2026-10-29T20:10:11.134Z
- 近 30 天下载量：2329（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 12 个）

## 中文简介

通过 oxc- transform- react 运行 React 编译器的虚拟插件, 本地 Rust 端口的节点绑定, 而不是 Babel

## 安装

```sh
npm install @acusti/vite-plugin-react-compiler
```

也可以使用：`pnpm add @acusti/vite-plugin-react-compiler`、`yarn add @acusti/vite-plugin-react-compiler`、`bun add @acusti/vite-plugin-react-compiler`

## README

# @ acusti/vite-plugin-反应-编译器

[![Open on npmx.dev](https://npmx.dev/api/registry/badge/version/@acusti/vite-plugin-react-compiler)](https://npmx.dev/package/@acusti/vite-plugin-react-compiler) [![Open on npmx.dev](https://npmx.dev/api/registry/badge/size/@acusti/vite-plugin-react-compiler)](https://npmx.dev/package/@acusti/vite-plugin-react-compiler) [![Open on npmx.dev](https://npmx.dev/api/registry/badge/dependencies/@acusti/vite-plugin-react-compiler)](https://npmx.dev/package/@acusti/vite-plugin-react-compiler) [![Open on npmx.dev](https://npmx.dev/api/registry/badge/downloads-month/@acusti/vite-plugin-react-compiler)](https://npmx.dev/package/@acusti/vite-plugin-react-compiler) [![Open on npmx.dev](https://npmx.dev/api/registry/badge/updated/@acusti/vite-plugin-react-compiler)](https://npmx.dev/package/@acusti/vite-plugin-react-compiler)

A 类 [维特](https://vite.dev/) 运行的插件 [React 编译器](https://react.dev/learn/react-compiler) 通过 [oxc- 转换- 反应](https://www.npmjs.com/package/oxc-transform-react), (中文(简体) ), 本地节点绑定 oxc 项目的 Rust 移植编译器 基于 Babel 的 React 编译器构建路径 .

它是从建造工具中提取的 [外语](https://outlyne.io/),在其中运行 生产.

## 为什么会这样

现为本地反应编译器集成: `@vitejs/plugin-react` 6.1,通过 `compiler: true` 运行 [oxc- 转换- 反应](https://www.npmjs.com/package/oxc-transform-react) —— 相同的 Rust 绑定这个插件使用的—— 相反 贝贝。 对于一个简单的Vite + React app, 那面旗帜是整个故事; 这个 插件没有要添加的内容 .

捕捉到的是这个 `compiler: true` 是一个选项 `@vitejs/plugin-react` 以及许多设置不会运行这个插件。 反应路由器在 框架模式是常见情况: 它运行 `@react-router/dev/vite` 内 地点 `@vitejs/plugin-react`,表示没有 `compiler: true`,没有 `reactCompilerPreset` 贝贝也倒下,因为 `@vitejs/plugin-react`也一样。 换入不同的 React/JSX 插件和 本地反应编译器支持也随之而来.

此插件是编译器的通过, 从 `@vitejs/plugin-react` 这样 它可以在其中任何一个下运行: a `transform`\-hook 调用插件 氧化-变形-直接反应,与 `enforce: 'pre'` (该职位 `@vitejs/plugin-react`并发放JSX (单位:千美元)`jsx: 'preserve'`),所以无论什么插件处理 JSX/新鲜下游 继续负责 (oxc- transform- react 字条类型脚本语法) 本身,匹配 Babel 路径如何使用 @babel/ preset-typescript.)

## 使用量

```
npm install --save-dev @acusti/vite-plugin-react-compiler
# or
yarn add --dev @acusti/vite-plugin-react-compiler
# or
pnpm add --save-dev @acusti/vite-plugin-react-compiler
# or
bun add --dev @acusti/vite-plugin-react-compiler
```

该插件依赖于一个精确的,测试过的版本 [oxc- 转换- 反应](https://www.npmjs.com/package/oxc-transform-react)数字 : 装订在快速移动的0.x放行列车跟踪React编译器上 主和新装订的释放接近100%的bug修正( Rust 端口) 以现有的广泛使用的 Babel 插件追求对等, 因此插件 将最新的版本标注在通过repo的测试套件上 常规插件发布 。 如果您需要不同的版本, 请使用您的软件包 经理 `overrides` (npm, pnpm, bun) 或 (npm, pnpm, bun) `resolutions` 强迫它.

喜欢 [@ acusti/vite-plugin-svg-反应](https://www.npmjs.com/package/@acusti/vite-plugin-svg-react),此插件需要 Vite \\\\ 8: 它 插入Vite 8的原生牛克/滚入变换管 没有它.

将插件添加到您的 Vite 配置中, 并附带您的其他 Vite 插件 :

```ts
// vite.config.ts
import { reactRouter } from '@react-router/dev/vite';
import reactCompiler from '@acusti/vite-plugin-react-compiler';
import { defineConfig } from 'vite';

export default defineConfig({
    plugins: [reactRouter(), reactCompiler()],
});
```

### 选项

插件会选择一个具有四个属性的可选选项对象:

-   **`include`** 编号 : **`exclude`**: 标准维特 [`createFilter`](https://vite.dev/guide/api-plugin#filtering-include-exclude-pattern) 模式选择哪个模块获得编译器通过。 默认 : `include: /\.[jt]sx?$/`, (中文(简体) ), `exclude: /[/\\]node_modules[/\\]/`。 。 。 .
-   **`compiler`**: 选项逐字传递到 React 编译器,使用相同的 名称为 [bail-plugin-反应编译器](https://react.dev/reference/react-compiler/configuration)数字 : `compilationMode`, (中文(简体) ), `panicThreshold` (违约) `'none'`, (中文(简体) ), `target` (违约) `'19'`, (中文(简体) ), `environment` 旗帜类 `enableTreatRefLikeIdentifiersAsRefs`,等等。 (笑声) 回调值选项 (例如:. `logger`,函数值 `sources`)不要越过本土 边界而不支持; `sources` 接受文件名数组 取而代之的是子弦,以及 `reportDiagnostics` (以下)涵盖常用 联 合 国 `logger`,看到编译器跳出什么.
-   **`memoize`**: 每个模块的缓存转换结果 id, 由内容键入 hash(每个文件绑入一个条目). 多环境建设(如:. React Router apps 构建客户端 + SSR 环境)运行每个变换 每个环境一次;缓存使重复通过自由. 默认为 `true`。 。 。 .

```ts
reactCompiler({
    exclude: [/node_modules/, /\.stories\./],
    compiler: {
        environment: { enableTreatRefLikeIdentifiersAsRefs: true },
    },
});
```

如果编译器报告一个致命错误( 分析失败, 拒绝选项) , 或诊断升级 `panicThreshold`),插件失败构建 通过 `this.error(...)`就像巴贝尔语法错误一样 非脂肪 编译器救市行为与对 Babel 插件的行为一样 `panicThreshold: 'none'`: 受影响的函数未组合 继续建设.

这些救市默认是沉默的。 看编译器跳过什么 为什么,设置 `compiler: { reportDiagnostics: true }`: 每个可回收物 诊断(救助,或选择一种 函数出)作为警告打印在您的构建或dev服务器输出中, 和编译器的代码框架及其在文件中的位置,以及构建 继续.

```ts
reactCompiler({ compiler: { reportDiagnostics: true } });
```

与 `memoize` 上面,一个文件的诊断 报告一次每个不同的 内容,不是每个环境一次。 与 `panicThreshold` 设置为 `'critical_errors'` 或者说 `'all_errors'`升级的诊断失败 通过 `this.error(...)` 而不是警告.

如 React 编译器主机, 和不同 [bail-plugin- react-compiller@ 1.0.0 互联网档案馆的存檔,存档日期2013-12-20](mailto:babel-plugin-react-compiler@1.0.0),则 编译器还跳过其组件或钩线 `useMemo` 或者说 `useCallback` 抚养人名单缺少抚养人名单或额外抚养人名单 备忘录的更新完全如所写。 与 `reportDiagnostics` 每个 一个报告是“失踪的记忆依赖”或“额外基金” 记忆依赖性” `panicThreshold` 设置为 `'critical_errors'` 或者说 `'all_errors'`诊断失败了 编译这些 包含依赖关系的组件, 编译器推导为 Babel 插件确实如此, 关闭检查 :

```ts
reactCompiler({
    compiler: {
        environment: { validateExhaustiveMemoizationDependencies: false },
    },
});
```

## 洞穴和生产成果

反相编译器的 Rust 端口和 oxc- transform- react 绑定是 实验性并明确标注为上游。 测量和核实 在信任 Babel 插件之前, 与其对齐( `__COMPILER_RUNTIME.c` 输出中的备忘录缓存调用很方便 diff).

因为 Rust 端口轨道 React 编译器主干线而不是 1. 0 释放,它与 [bail-plugin- react-compiller@ 1.0.0 互联网档案馆的存檔,存档日期2013-12-20](mailto:babel-plugin-react-compiler@1.0.0) 两者 方向 : 它编译一些代码 Babel 插件保存 (template-literal 对象键,在尝试/捕获中的条件),它跳过 手动记忆缺失或额外的组件和钩子 依赖, Babel 插件所汇编的(参见 [选项](https://npmcn.com/package/%40acusti/vite-plugin-react-compiler/#readme-options)) (中文(简体) ). 除了插件本身的测试外, 这个 Repo 运行一个上游跟踪套件 与被钉住的装订版本相对应:它夹住两种相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相分相相分相分相分相分相分相分相分相分相分相分相分相分相分相分相相分相分相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 贝贝平地在降落时固定(反应-猎物抑制选择) 自0.144.0起已停止编制,并跟踪已知的上游差距 当它们出现的时候,每条捆绑物,在它航行之前,都要重新验证 插件发布 .

在发射时测量,在生产维特的克-变形-反应0.142.0上 8 + React Router app 此插件是从中取出, 反对 [bail-plugin- react-compiller@ 1.0.0 互联网档案馆的存檔,存档日期2013-12-20](mailto:babel-plugin-react-compiler@1.0.0) 覆盖987个源文件:

-   **完全记忆平和,零回归** ——每个功能 Babel 插件编译, Rust 端口编译, 它编译了一个 严格超群.
-   **编译器传出速度快了~16x** 比贝贝通行证.
-   **整个生产建设速度快到2.5x** (53s ~ 21s) (中文(简体) ).

## 常见问题

### @acusti/vite-plugin-react-compiler 是什么？

通过 oxc- transform- react 运行 React 编译器的虚拟插件, 本地 Rust 端口的节点绑定, 而不是 Babel

### 如何安装 @acusti/vite-plugin-react-compiler？

在项目目录运行 npm install @acusti/vite-plugin-react-compiler，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：vite（\>=8\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @acusti/vite-plugin-react-compiler 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @acusti/vite-plugin-react-compiler 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @acusti/vite-plugin-react-compiler 可以商用吗？

@acusti/vite-plugin-react-compiler 使用 Unlicense 许可。作者将代码贡献到公共领域，可不受限制地使用。以上为概括，不构成法律意见，请以许可原文为准。

### @acusti/vite-plugin-react-compiler 的下载量有多少？

根据 npm 官方下载统计，@acusti/vite-plugin-react-compiler 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,329 次，日均约 78 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @acusti/vite-plugin-react-compiler 还在维护吗？

最新版本 0\.11\.0 发布于 2026/10/30（8 天前）；至今共发布 12 个版本，其中过去 12 个月发布了 12 个；首次发布于 2026/08/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

