# @funcd-dev/vite-plugin 中文文档

规范地址：https://npmcn.com/package/%40funcd-dev/vite-plugin/

版本：0\.29\.0
npm 元数据更新时间：2026-11-14T12:31:41.435Z
中文译文更新时间：2026-11-15T16:59:21.488Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：12.4 kB，4 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- peer 依赖：vite ^8\.0\.0
- 首次发布：2026-10-01T23:44:40.594Z
- 最新版本发布：2026-11-14T12:31:41.040Z
- 近 30 天下载量：2639（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：35（近 12 个月 35 个）

## 中文简介

将每个 funcd 函数捆绑为一个自成一体的 ES 模块的 Vite 插件

## 安装

```sh
npm install @funcd-dev/vite-plugin
```

也可以使用：`pnpm add @funcd-dev/vite-plugin`、`yarn add @funcd-dev/vite-plugin`、`bun add @funcd-dev/vite-plugin`

## README

# @ funcd-dev/vite-plugin (英语)

A 类 [维特](https://vite.dev/) 每个捆绑的插件 [乐谱](https://github.com/pyvvo/funcd) 函数 输入一个自成一体的ES模块,用于funcd节点运行时间(已失效 CDR-0144),并将其合同文件放入 (已失效的ADR-0247).

```bash
yarn add -D vite @funcd-dev/vite-plugin
```

```ts
// vite.config.ts
import { funcd } from '@funcd-dev/vite-plugin';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [funcd({ functions: { front: 'src/front/main.ts', greeter: 'src/greeter/main.ts' } })],
});
```

`vite build` 将每个函数构建为自己的 Vite 环境, 因此没有代码分割为共享 块 :

-   `dist/<name>.mjs`: 其依赖性内含的处理器, 节点22的无害环境管理, 节点构建后左侧 外部的,不是微缩的.
-   `dist/<name>.contract.yaml` (或 `.json`: 该函数的合同文件, 复制自 `<name>.contract.yaml` 或者说 `<name>.contract.json` 在项目根。 功能没有,或 两者都失败了.

礛 `funcdctl push dist/<name>.mjs <ref>` 从合同文件中取出运行时间和合同 在文件旁边 函数绑定和存储在它的资源文件中直播, 而不是在这里 .

`funcdctl.yaml` 无法读取 : `funcdctl.yaml` 或者说 `<name>.funcdctl.yaml` 失败构建,请指定替换它的合同文件.

| 选项 | 默认 | 什麽 |
| --- | --- | --- |
| `functions` | `{ <root dir name>: 'src/main.ts' }` | 函数名 ~ 处理器源, 相对于 Vite 根 |
| `outDir` | `'dist'` | 地点 `<name>.mjs` 去; 项目根 (`'.'`)同样有效,然后合同文件不复制 |

每一个函数都会在 Vite 缓存目录下构建一个中继目录,插件复制 结果产生 `outDir`,因此共享输出目录永远不会被空出.

## 监视模式

`vite build --watch` 保留 `outDir` 当前,一次一个函数(已失效的 IDR-0244) :

-   当一个函数的重建结束时,它的 `<name>.mjs` 合同文件将写入 `outDir`;另一个 函数的文件不被触动。 每个文件都写在目标旁边 并重新命名为它,所以.. 读者从不看半个文件.
-   保存函数的合同文件只重建该函数 。 创建合同文件时 监视运行在下次重建时生效.
-   一个失败的重建会打印出错误并保存函数上一个好文件; 手表会继续 .

除了这个, `funcdctl dev` 重新装入文件会改变的每个函数, 因此保存的处理器会用 它的新代码在大约一秒钟之内:

```bash
vite build --watch    # terminal 1
funcdctl dev dist     # terminal 2
```

一个平地 `vite build` 仍在写 `outDir` 只有在每个功能建立之后,才写作 当一个失败.

## 常见问题

### @funcd-dev/vite-plugin 是什么？

将每个 funcd 函数捆绑为一个自成一体的 ES 模块的 Vite 插件

### 如何安装 @funcd-dev/vite-plugin？

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

### @funcd-dev/vite-plugin 支持 TypeScript 吗？

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

### @funcd-dev/vite-plugin 支持 ESM 还是 CommonJS？

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

### @funcd-dev/vite-plugin 需要什么版本的 Node\.js？

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

### @funcd-dev/vite-plugin 可以商用吗？

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

### @funcd-dev/vite-plugin 的下载量有多少？

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

### @funcd-dev/vite-plugin 还在维护吗？

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

