# @chatium/vue-ts-mapper-rs 中文文档

规范地址：https://npmcn.com/package/%40chatium/vue-ts-mapper-rs/

版本：0\.2\.7
npm 元数据更新时间：2026-10-14T11:40:35.786Z
中文译文更新时间：2026-11-09T12:06:05.253Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40chatium/vue-ts-mapper-rs
原文对照：https://npmcn.com/package/%40chatium/vue-ts-mapper-rs/?lang=original
项目主页：https://github.com/chatium/vue-ts-mapper-rs#readme
源码仓库：https://github.com/chatium/vue-ts-mapper-rs

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

- 包体积（解压后）：28.6 MB，13 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-10-04T07:12:02.758Z
- 最新版本发布：2026-10-14T11:40:35.595Z
- 近 30 天下载量：3120（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 7 个）

## 中文简介

Vue 单文件组件的 TypeScript 7 内容映射器, 用 Rust 写

## 安装

```sh
npm install @chatium/vue-ts-mapper-rs
```

也可以使用：`pnpm add @chatium/vue-ts-mapper-rs`、`yarn add @chatium/vue-ts-mapper-rs`、`bun add @chatium/vue-ts-mapper-rs`

## README

# {\\fn华文楷体\\fs20\\bord1\\shad1\\1che0e0e0\\2ch000000}相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相相去相去相去相去相去相去相去相去相去相去相去相去相相去相去相去相去相

A 类 [类型脚本 7 内容映射器](https://github.com/microsoft/typescript-go) vue 单文件 组件,用 Rust 写出。 带着它, `tsc` (第7.1页+, `tsgo`() 类型检查 `.vue` 文件 本地化:映射器将每个 SFC 转换成虚拟类型Script 文件并加跨度映射 编译器报告在 `.vue` 来源.

虚拟代码生成是一个端口 [`@vue/language-core`](https://github.com/vuejs/language-tools) (v4内容-马普分行, [vuejs/语言工具# 6170](https://github.com/vuejs/language-tools/pull/6170), (中文(简体) ), 与检查语义 `vue-tsc` 3.3 两种不同者,请参看TypeScript 6 [与 vue- tsc 相比](https://npmcn.com/package/%40chatium/vue-ts-mapper-rs/#readme-compared-with-vue-tsc)) (中文(简体) ). 通用: TypeScript 中的任何 Vue 3 项目 或 JavaScript, 它检查一个工程的一小部分 `vue-tsc`时间和记忆.

## 使用量

安装 TypeScript 7.1 和映射器( macOS 和 Linux、 x64 和 arm64 的预建二进制),以及 Windows x64在软件包中:

```sh
npm i -D typescript@7.1.0-dev.20261003.1 @chatium/vue-ts-mapper-rs
```

登记在册 `tsconfig.json`数字 :

```jsonc
{
  "compilerOptions": { "strict": true, "noEmit": true },
  "include": ["src/**/*.ts", "src/**/*.vue"],
  "contentMappers": [
    {
      "package": "@chatium/vue-ts-mapper-rs",
      "extensions": [".vue"],
      // only for CLI checks: skips the editor-feature flags of the mappings
      "options": { "languageFeatures": false }
    }
  ]
}
```

并启用外部代码运行编译器 :

```sh
npx tsc --runExternalCode --noEmit
```

### 没有触摸到Tsconfig

`vue-tsgo` 在已存在的 tsconfig (它) 上运行已注册的地图编译器 从临时目录中扩展它,因为 TypeScript 解析来自 tsconfig的位置). 不需要在项目中安装 :

```sh
npm exec --yes \
  --package=typescript@7.1.0-dev.20261003.1 \
  --package=@chatium/vue-ts-mapper-rs \
  -- vue-tsgo --noEmit
```

`vue-tsgo` 运行其中第一个安装在机器上的结构: [`tsrs`](https://www.npmjs.com/package/tsrs) (TypeScript 7的Rust端口,最快,最快) 最小的内存: 在我们的Vue项目上,比 `typescript` 七分半的记忆, [`@chatium/tsc-rs`](https://www.npmjs.com/package/@chatium/tsc-rs) (另一个Rust口),那么 `typescript`。 。 。 . `VUE_TSGO_TSC=tsc-rs` 开始于 `@chatium/tsc-rs`, (中文(简体) ), `VUE_TSGO_TSC=typescript` 运行 `typescript`数字 :

```sh
npm exec --yes --package=tsrs --package=@chatium/vue-ts-mapper-rs -- vue-tsgo --noEmit
```

`VUE_TSGO_MAX_MEMORY=<size>` (例如 `1G` 或者说 `1500M`保留 `tsrs` 接近这个记忆: 结束 这, `tsrs` 退出文件之间的最大检查器( q)`--maxMemory`),下至16 MB的跳棋 (单位:千美元)`TSRS_RETIRE_MIN`,除非设置). 在我们最大的Vue项目上 `1G` 将峰值降低四分之一至一 第三个大约相同的速度;解析出的程序本身是地板. `@chatium/tsc-rs` 财务报告和审定财务报表 `typescript` 别管它.

`vue-tsgo` 选择 `tsc` (单位:千美元)`-p` 选择tsconfig, `./tsconfig.json` (默认情况下). 一个使用 tsconfig 的 `${configDir}` 或相对 `types` 条目根据此进行解析 临时目录; 在 tsconfig 中注册映射器.

### 选项

地图员的条目 `options` 选择 Vue 编译器选项 `@vue/language-core` (单位:千美元)`target`, (中文(简体) ), `lib`, (中文(简体) ), `strictTemplates`, (中文(简体) ), `checkUnknownProps`, (中文(简体) ), `strictCssModules`, (中文(简体) ), `fallthroughAttributes`, (中文(简体) ), `dataAttributes`, (中文(简体) ), `macros`平地而不是筑起巢穴 `vueCompilerOptions`。 。 。 . `vueCompilerOptions` 图形 `extends` 链条也读取(在条目选项下),作为 每个文件 `<!-- @key value -->` 评论. `target` 默认为版本 `node_modules/vue` 并回到最新的.

一样 `vue-tsc` 3.3,模板默认为宽大:倒转属性,未知事件, 允许指令和组件 `v-model` 未检查事件 . `strictTemplates: true` 打开 `checkUnknownProps`, (中文(简体) ), `checkUnknownEvents`, (中文(简体) ), `checkUnknownDirectives`, (中文(简体) ), `checkUnknownComponents` 财务报告和审定财务报表 `strictVModel` (各可自设.

不支持: Vue 语言插件(`plugins`,例如Pug或Markdown模板)是 JavaScript 和 未装入; a `<template lang="pug">` 未选中, 如没有插件.

## 与 vue- tsc 相比

已核对 `vue-tsc` 3.3.12和3.3.11 (文字版 6.0.3),通过类型检查整个项目 并按文件、位置和代码对诊断进行分解:12个生产工作空间(XQ11 000 SFC) 和8个开源项目(vitesse、vue-pure-admin、vitepress及其文件、幻灯片、, 元素加,光环,克提亚。 在开源的上,除项目外,输出是相同的 以下;无 `vue-tsc` 诊断被映射器对生成代码的压制所隐藏(检查) 通过重运行 `VUE_TS_MAPPER_KEEP_UNMAPPED=1`) (中文(简体) ).

有什么不同,为什么:

-   **JS组件被打入.** 与 `allowJs: false`, (中文(简体) ), `vue-tsc` 输入 `.vue` 文件 带有 Java 脚本 `<script>` 作为 `any` 并在进口时报告TS7016。 TypeScript 7 类型, 因此检查这些组件的道具、事件和插槽(错误道具类型, `null` 转至 (单位:千美元) `Number` prop,.)和TS7016 以及后续隐含 -`any` 错误已去.
-   **类型脚本 7 本身**输入 `.ts` 财务报告和审定财务报表 `.vue` 相同:报告超载错误(TS2769) 参数而不是调用(所以 `// @ts-ignore` 上面两行不再覆盖它, 消息更具体(TS2552"你的意思是",TS2741而不是TS2345),解构 也许..`undefined` 值报告(TS2488),一个物体的第一个多余属性 文字按照源顺序, JS 风格 `Fn.prototype = { … }` 内 `.ts` 文件不再类型 `this`,以及 `TuplifyUnion`\- 风格的递归型可以击中TS5114.
-   **`vue-tsc` 未复制的假阳性**: 从生成代码开始的错误 `vue-tsc` drops(它错过了例如模板中导入函数的错误参数计数), `.value` 用于缩小位置的函数/类/enum/导入(3.3.12), 内部参考文献 `v-if="false"` 块,失去附件的收缩 `v-if`s, (中文(简体) ), `v-for` 插槽后丢失的变量(3.3.12),明确 `import { defineProps } from 'vue'` (TS2440, 3.3.11),以及生成代码中的语法错误 `vue-tsc` 隐藏( 空) `@submit.prevent=""`, (中文(简体) ), `v-model="x as T"`,在 `<template v-else">`)是有效的代码 或此处属性的普通错误.
-   **打开脚本** (缺失) `}` 结尾 `<script setup>`页:1 脚本 `vue-tsc` 没有报告.

代码来源于 vuejs/ 语言工具 # 6170 at `e75a638e` (有 [`tools/reference/language-tools.patch`](https://npmcn.com/package/%40chatium/vue-ts-mapper-rs/tools/reference/language-tools.patch));快照 内 `tests/fixtures` 记录它现在偏离该参考之处.

## 业绩

`vue-tsc --noEmit` (3.3.12, TypeScript 6.0.3) 反对 `tsc --runExternalCode --noEmit` (TypeScript 7.1.0-dev.20261003.1) 与这台地图机,在苹果M系列笔记本电脑上(墙上时间,最高峰) 进程树的内存 :

| 项目 | 章鱼 | 风切变 | 类型脚本 7 + vue- ts- mapper- rs |
| --- | --: | --- | --- |
| 生产工作空间 | 3 571个 | 130 s, 13.0 GB (英语) | 9.3 s, 6.5 GB (英语) |
| 生产工作空间 | 2 901个 | 65 s, 7.2 GB (英语) | 5.5 s, 4.0 GB 键 |
| 生产工作空间 | 2 725个 | 105 s, 11.3 GB (英语) | 7.9 s, 5.8 GB (英语) |
| 生产工作空间 | 1 931 (中文(简体) ) | 124 s, 12.3 GB (英语) | 11.6 s, 6.7 GB 键 |
| 生产工作空间 | 903号 | 39 s, 3.4 GB (英语) | 3.8 s, 2.4 GB 键 |
| 光环( 控制台) | 296号 | 8.5 s, 1.1 GB (英语) | 1.1 s, 0. 8 GB 键 |
| 纯日出 | 255 (英语) | 13.6 s, 1.6 GB (英语) | 1.6 s, 1.1 GB (英语) |
| 元素加数 | 164 (韩语) | 11.0 s, 1.3 GB (英语) | 1.9 s, 1.0 GB 键 |
| gitea (网络) | 第23条 | 6.5 s, 1.1 GB 键 | 1.1 s, 0. 8 GB 键 |

映射程序本身最高峰为100–300 MB;其余为编译器. 单枪匹马的地图员 在一个核心(平均13个KB,每个SFC+1 ms)和尺度上,每秒变换约1 000个SFC 穿过核心.

## 如何运作

-   **SFC 和模板解析**数字 : [聊天室/声优-sfc-swc](https://github.com/chatium/vue-sfc-swc), (中文(简体) ), a 字节-同声的Rust端口 `@vue/compiler-core` 编号 : `@vue/compiler-sfc` 3.5.38 (英语).
-   **脚本分析**数字 : [缩写](https://swc.rs/) 剖析 `<script>` 块和模板表达式; 行走者复制语言核心从 TypeScript 的 AST 读取的内容( 键入位置, 引导) 评论、具有约束力的名称及其范围).
-   **代码**: 转写语言核心生成器(`codegen/{script,template,style}`(中文(简体) ) 写入带有相同特性解析的段缓冲器,将符号和注释合并 指令(`@vue-ignore`, (中文(简体) ), `@vue-expect-error`, (中文(简体) ), `@vue-skip`, (中文(简体) ), `@vue-generic`) (中文(简体) ).
-   **绘图**:Volar映射,然后内容映射者横幅映射和诊断 指令,在UTF-16中按协议要求全部冲抵.
-   **议定书**数字 : `Content-Length`\- JSON-RPC在结构上`initialize`, (中文(简体) ), `openProject`, (中文(简体) ), `closeProject`, (中文(简体) ), `transform`);变换运行在线状池上.

## 发展

```sh
cargo test --release                     # unit tests + snapshots of the language-tools fixtures
UPDATE_FIXTURES=1 cargo test --release --test conformance    # rewrite the snapshots
cargo run --release --example bench -- files.txt 8
cargo run --release --example syntax_scan -- a.vue b.vue …   # SFCs whose virtual code does not parse
cargo run --release --example dump_one -- a.vue [needle]     # virtual code, or mappings around a needle
```

有效的 SFC 的虚拟代码必须解析: TypeScript 报告语法错误, 不论大小 地图员的指示,而单一则停止对整个程序的语义检查.

与任何一组编码的参考码进行对比 `.vue` 文件, 构建一次 (单位:千美元)`tools/reference/build.sh`,需要节点和网络),倾销其输出和diff:

```sh
node tools/reference/dump.cjs files.txt > ref.jsonl
cargo run --release --example conformance -- ref.jsonl --out /tmp/diffs
```

## 许可证

麻省理工学院. 由vuejs/语言工具(麻省理工学院, Johnson Chu);见 [自由主义](https://npmcn.com/package/%40chatium/vue-ts-mapper-rs/LICENSE)。 。 。 .

## 常见问题

### @chatium/vue-ts-mapper-rs 是什么？

Vue 单文件组件的 TypeScript 7 内容映射器, 用 Rust 写

### 如何安装 @chatium/vue-ts-mapper-rs？

在项目目录运行 npm install @chatium/vue-ts-mapper-rs，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 vue-tsgo，可以用 npx vue-tsgo 直接运行。

### @chatium/vue-ts-mapper-rs 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/chatium\_\_vue-ts-mapper-rs 是否存在。

### @chatium/vue-ts-mapper-rs 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @chatium/vue-ts-mapper-rs 可以商用吗？

@chatium/vue-ts-mapper-rs 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @chatium/vue-ts-mapper-rs 的下载量有多少？

根据 npm 官方下载统计，@chatium/vue-ts-mapper-rs 在 2026/10/10 – 2026/11/08 这 30 天内被下载 3,120 次，日均约 104 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @chatium/vue-ts-mapper-rs 还在维护吗？

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

