Vite + NestJS 全栈开发工具 - 类型安全、零样板代码的前后端调用方案
中文 | English
vtzac 是一个面向 Vite + NestJS 的全栈开发工具,让前端以"类型安全、零样板代码"的方式直接调用后端控制器(HTTP 与 WebSocket),并为服务端事件发送提供简洁的封装。
pnpm add vtzacimport { defineConfig } from 'vite';
import vtzac from 'vtzac';
export default defineConfig({
plugins: [vtzac()],
});前端直接引用后端项目即可实现类型安全调用。
import { _http } from 'vtzac';
import { AppController } from 'backend/src/app.controller';
const api = _http({
ofetchOptions: { baseURL: 'http://localhost:3000' },
}).controller(AppController);
// 类型安全的方法调用
const res = await api.getHello();
console.log(res._data); // 输出:'Hello World!'import { _socket } from 'vtzac';
import { WebSocketGateway } from 'backend/src/websocket.gateway';
const { emitter, createListener } = _socket(
'http://localhost:3000',
WebSocketGateway
);
// 发送消息
emitter.handleMessage({ text: 'Hello!' });
// 监听事件
const listener = createListener(EventEmitter);
listener.message(data => console.log(data));- 快速开始 - 零配置完成最小可用流程
pnpm add vtzac欢迎提交 Issue 和 Pull Request!