# @ai-sdk/codemod 中文文档

规范地址：https://npmcn.com/package/%40ai-sdk/codemod/

版本：4\.0\.4
npm 元数据更新时间：2026-11-05T01:13:06.422Z
中文译文更新时间：2026-11-05T21:44:36.689Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40ai-sdk/codemod
原文对照：https://npmcn.com/package/%40ai-sdk/codemod/?lang=original
项目主页：https://ai-sdk.dev/docs
源码仓库：https://github.com/vercel/ai

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

- 包体积（解压后）：1 MB，373 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=22
- 运行依赖：4 个
- 首次发布：2024-11-11T18:33:03.328Z
- 最新版本发布：2026-11-05T01:13:06.100Z
- 近 30 天下载量：16660（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：74（近 12 个月 37 个）

## 中文简介

暂无中文简介

## 安装

```sh
npm install @ai-sdk/codemod
```

也可以使用：`pnpm add @ai-sdk/codemod`、`yarn add @ai-sdk/codemod`、`bun add @ai-sdk/codemod`

## README

# AI SDK 代码

AI SDK提供自动化代码转换(codemods),在功能被贬值,去掉,或版本间被更改时帮助更新您的代码库.

代码是程序上运行在您的代码库上的变换,允许您轻松应用许多修改而无需手动编辑每个文件.

## 快速启动

### 运行全部代码( 建议)

运行所有代码:

```sh
npx @ai-sdk/codemod upgrade
```

这将自动检测和改变您项目中所有应用的代码模式 .

### 运行版本特定代码

要运行特定版本的代码:

```sh
npx @ai-sdk/codemod v4

npx @ai-sdk/codemod v5

npx @ai-sdk/codemod v6

npx @ai-sdk/codemod upgrade
```

### 运行单个代码

要运行一个特定的代码:

```sh
npx @ai-sdk/codemod <codemod-name> <path>
```

实例:

```sh
# Transform a specific file
npx @ai-sdk/codemod v4/remove-experimental-ai-fn-exports src/app/api/chat/route.ts

# Transform a directory
npx @ai-sdk/codemod v4/replace-baseurl src/lib/

# Transform entire project
npx @ai-sdk/codemod v5/rename-format-stream-part .
```

## 可用的代码

### v4 代码 (v3 → v4 迁移)

| 代码 | 说明 |
| --- | --- |
| `v4/remove-ai-stream-methods-from-stream-text-result` | 从流文本结果转换 v4/ remove ai 流方法 |
| `v4/remove-anthropic-facade` | 变形 v4/remove 人类外观 |
| `v4/remove-await-streamobject` | 变形 v4/ remove 等待流对象 |
| `v4/remove-await-streamtext` | 变形 v4/ remove 等待流文本 |
| `v4/remove-deprecated-provider-registry-exports` | 变换 v4/remove 已贬值的供应商登记册出口 |
| `v4/remove-experimental-ai-fn-exports` | 变形 v4/ remove 实验 ai fn 输出 |
| `v4/remove-experimental-message-types` | 转换 v4/ 移动实验消息类型 |
| `v4/remove-experimental-streamdata` | 变形 v4/ 移动实验流数据 |
| `v4/remove-experimental-tool` | 变形 v4/ 移动实验工具 |
| `v4/remove-experimental-useassistant` | 变换 v4/ 移走实验用途 |
| `v4/remove-google-facade` | 变形 v4/ remove google 外观 |
| `v4/remove-isxxxerror` | 变换 v4/ remove 是xxxror |
| `v4/remove-metadata-with-headers` | 有信头的变形 v4/ 移动元数据 |
| `v4/remove-mistral-facade` | 变形 v4/remove 雾化外观 |
| `v4/remove-openai-facade` | 变形 v4/ remove openai 外观 |
| `v4/rename-format-stream-part` | 变形 v4/ rename 格式流部分 |
| `v4/rename-parse-stream-part` | 变形 v4/ rename 剖析流部分 |
| `v4/replace-baseurl` | 变形 v4/ 替换基底图 |
| `v4/replace-continuation-steps` | 变换 v4/ 替换继续步骤 |
| `v4/replace-langchain-toaistream` | 变换 v4/ 替换朗链 toaistream |
| `v4/replace-nanoid` | 变形 v4/ 替换纳米 |
| `v4/replace-roundtrips-with-maxsteps` | 变换 v4/ 以最大步取代圆形 |
| `v4/replace-token-usage-types` | 变换 v4/ 替换符号使用类型 |
| `v4/rewrite-framework-imports` | 转换 v4/ 重写框架导入 |

### v5 代码 (v4 → v5 迁移)

| 代码 | 说明 |
| --- | --- |
| `v5/flatten-streamtext-file-properties` | 变形 v5/平面流文本文件属性 |
| `v5/import-LanguageModelV2-from-provider-package` | 从提供者软件包中转换 v5/ 导入语言模型V2 |
| `v5/migrate-to-data-stream-protocol-v2` | 转换 v5/ miglate 为数据流协议 v2 |
| `v5/move-image-model-maxImagesPerCall` | 变形 v5/ 移动图像模型最大图像 |
| `v5/move-langchain-adapter` | 变形 v5/ 移动朗链适配器 |
| `v5/move-maxsteps-to-stopwhen` | 变形 v5/ 移动最大步以停止 |
| `v5/move-provider-options` | 变换 v5/ 移动提供者选项 |
| `v5/move-react-to-ai-sdk` | 变形 v5/ 移动对 ai sdk 反应 |
| `v5/move-ui-utils-to-ai` | 变形 v5/ 移动 ui utils 到 ai |
| `v5/remove-experimental-wrap-language-model` | 变形 v5/ 重新移动实验性包装语言模型 |
| `v5/remove-get-ui-text` | 变形 v5/ remove 获取 ui 文本 |
| `v5/remove-openai-compatibility` | 变换 v5/ remove openai 兼容性 |
| `v5/remove-sendExtraMessageFields` | 变形 v5/ remove 发送ExtraMessage 字段 |
| `v5/rename-IDGenerator-to-IdGenerator` | 变换 v5/ 重命名 IDGenerator 到 IdGenerator |
| `v5/rename-addtoolresult-to-addtooloutput` | 转换 v5/ rename 添加工具结果以添加工具输出 |
| `v5/rename-converttocoremessages-to-converttomodelmessages` | 转换 v5/ 重名转换为分数消息以转换为模式消息 |
| `v5/rename-core-message-to-model-message` | 转换 v5/ 重命名核心消息到模式消息 |
| `v5/rename-datastream-methods-to-uimessage` | 转换 v5/ 重命名数据流方法为 uimessage |
| `v5/rename-datastream-transform-stream` | 变换 v5/ 重命名数据流变换流 |
| `v5/rename-languagemodelv1providermetadata` | 变形 v5/ 重命名语言模型v1 professormetadata |
| `v5/rename-max-tokens-to-max-output-tokens` | 将 v5/ 重命名最大符号转换为最大输出符号 |
| `v5/rename-message-to-ui-message` | 变换 v5/ 重命名消息到 ui 消息 |
| `v5/rename-mime-type-to-media-type` | 将 v5/ rename mime 类型转换为媒体类型 |
| `v5/rename-pipedatastreamtoresponse-to-pipeuimessagestreamtoresponse` | 变形 v5/ 重命名 管道数据流响应 管道信息流响应 |
| `v5/rename-reasoning-properties` | 变形 v5/ rename 推理属性 |
| `v5/rename-reasoning-to-reasoningText` | 变换 v5/ 重命名推理为推理 文本 |
| `v5/rename-request-options` | 变形 v5/ rename 请求选项 |
| `v5/rename-todatastreamresponse-to-touimessagestreamresponse` | 变换 v5/ 重命名为数据流响应 toimesagestream 响应 |
| `v5/rename-tool-parameters-to-inputschema` | 转换 v5/ 重命名工具参数到输入计 |
| `v5/replace-bedrock-snake-case` | 变形 v5/取代地基蛇案 |
| `v5/replace-content-with-parts` | 转换 v5/ 替换部分内容 |
| `v5/replace-datastream-to-uimessagestream` | 变换 v5/ 重置数据流到 uimessage 流 |
| `v5/replace-experimental-provider-metadata` | 变换 v5/ 替换实验提供者元数据 |
| `v5/replace-fal-snake-case` | 变形 v5/ 替换叶蛇案 |
| `v5/replace-image-type-with-file-type` | 转换 v5/ 用文件类型替换图像类型 |
| `v5/replace-llamaindex-adapter` | 变换 v5/ 替换 lamaindex 适配器 |
| `v5/replace-oncompletion-with-onfinal` | 完成时变换 v5/ 替换为 Final |
| `v5/replace-provider-metadata-with-provider-options` | 变换 v5/ 替换有提供者选项的提供者元数据 |
| `v5/replace-rawresponse-with-response` | 变换 v5/ 替换原始响应与响应 |
| `v5/replace-redacted-reasoning-type` | 变换 v5/ 替换已编辑的推理类型 |
| `v5/replace-simulate-streaming` | 变形 v5/ 替换模拟流线 |
| `v5/replace-textdelta-with-text` | 变换 v5/ 替换文本delta |
| `v5/replace-usage-token-properties` | 变形 v5/ 替换使用符属性 |
| `v5/replace-usechat-api-with-transport` | 变换 v5/ 替换带传送功能的 usechat api |
| `v5/replace-usechat-input-with-state` | 变换 v5/ 替换使用聊天输入状态 |
| `v5/replace-zod-import-with-v3` | 转换 v5/ 替换以 v3 导入的 zod |
| `v5/require-createIdGenerator-size-argument` | 变形 v5/ 需要创建 IdGenerator 大小参数 |
| `v5/restructure-file-stream-parts` | 变换 v5/ 结构文件流部件 |
| `v5/restructure-source-stream-parts` | 变换 v5/ 结构源流部件 |
| `v5/rsc-package` | 变形 v5/rsc 软件包 |

### v6 代码 (v5)- v6 迁移)

| 代码 | 说明 |
| --- | --- |
| `v6/add-await-converttomodelmessages` | 变换 v6/ 添加等待转换到模式 |
| `v6/rename-converttocoremessages-to-converttomodelmessages` | 转换 v6/ 重名转换为调制模式 |
| `v6/rename-core-message-to-model-message` | 变换 v6/ 重命名核心消息到模式消息 |
| `v6/rename-mock-v2-to-v3` | 变形 v6/ rename 模拟 v2 到 v3 |
| `v6/rename-text-embedding-to-embedding` | 转换 v6/ 重命名文本嵌入到嵌入 |
| `v6/rename-tool-call-options-to-tool-execution-options` | 变换 v6/ rename 工具调用选项到工具执行选项 |
| `v6/rename-vertex-provider-metadata-key` | 变形 v6/ 重命名顶点提供者元数据密钥 |
| `v6/wrap-tomodeloutput-parameter` | 转换 v6/ wrap 模式输出参数 |

## CLI 选项

### 图标

```sh
npx @ai-sdk/codemod@beta <command> [options]
```

**可用命令 :**

-   `upgrade` - 应用所有编码(v4 + v5 + v6)
-   `v4` - 应用 v4 代码(v3 – v4 迁移)
-   `v5` - 应用 v5 代码(v4)- v5 迁移)
-   `v6` - 应用 v6 代码(v5)- v6 迁移)
-   `<codemod-name> <path>` - 应用特定的代码

### 全球选项

-   `--dry` - 不应用而预览更改
-   `--print` - 打印转换的代码到 stdout
-   `--verbose` - 显示详细的转换日志

### 实例

```sh
# Preview all changes without applying
npx @ai-sdk/codemod@beta --dry upgrade

# Preview v4 changes only
npx @ai-sdk/codemod@beta --dry v4

# Preview v5 changes only
npx @ai-sdk/codemod@beta --dry v5

# Preview v6 changes only
npx @ai-sdk/codemod@beta --dry v6

# Show verbose output for specific codemod
npx @ai-sdk/codemod@beta --verbose v4/remove-experimental-ai-fn-exports src/

# Print transformed code for specific codemod
npx @ai-sdk/codemod@beta --print v4/replace-baseurl src/config.ts
```

## 最佳做法

### 在运行代码前

1.  **备份您的代码** - 将所有更改提交版本控制
2.  **审查当前贬值警告** - 先解决任何明显的问题
3.  **更新依赖关系** - 确保你进入目标AI SDK版本

### 运行代码后

1.  **审查变化** - 检查diff 了解什么被改变
2.  **测试您的应用程序** - 确保一切如所料
3.  **处理边缘大小写** - 一些复杂的模式可能需要人工修正
4.  **运行类型检查** - 纠正任何仍然存在的类型脚本错误

### 解决问题

如果一个代码没有改变一些代码:

1.  **检查文件扩展名** - 代码在工作 `.ts`, (中文(简体) ), `.tsx`, (中文(简体) ), `.js`, (中文(简体) ), `.jsx` 文件
2.  **审查模式** - 复杂或不寻常的代码模式可能需要人工更新
3.  **运行特定的代码** - 尝试运行个人代码以进行目标修正
4.  **检查文档** - 有些修改可能没有自动编码器

## 捐款

### 添加新代码

1.  在 `src/codemods/`
2.  在 `src/test/__testfixtures__/`
3.  创建测试在 `src/test/`
4.  更新捆绑 `src/lib/upgrade.ts`

### 测试代码

首先,导航到编码器目录:

```sh
cd packages/codemod
```

然后进行测试:

```sh
# Run all tests
pnpm test

# Run specific codemod tests
pnpm test <codemod-name>

# Test in development
pnpm test:watch
```

## 支助

-   **文档**数字 : [AI SDK 迁移指南](https://ai-sdk.dev/docs/migration-guides)
-   **问题**数字 : [GitHub 问题](https://github.com/vercel/ai/issues)
-   **社区**数字 : [解析器](https://discord.gg/vercel)

## 版本兼容性

-   **AI SDK 6.0**: 此软件包中的所有代码
-   **AI SDK 5.0**: 使用 v4 + v5 编码器
-   **AI SDK 4.x 软件**: 使用 `@ai-sdk/codemod@1.x`
-   **大赦国际 SDK 3.x**需要人工迁移

* * *

更详细的移徙信息见:

-   [AI SDK 6.0 移民指南](https://ai-sdk.dev/docs/migration-guides/migration-guide-6-0)

## 常见问题

### 如何安装 @ai-sdk/codemod？

在项目目录运行 npm install @ai-sdk/codemod，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 codemod，可以用 npx codemod 直接运行。

### @ai-sdk/codemod 支持 TypeScript 吗？

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

### @ai-sdk/codemod 需要什么版本的 Node\.js？

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

### @ai-sdk/codemod 可以商用吗？

@ai-sdk/codemod 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @ai-sdk/codemod 的下载量有多少？

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

### @ai-sdk/codemod 还在维护吗？

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

