|
|
@@ -12,13 +12,14 @@ import process from 'node:process';
|
|
|
import { createAdaptorServer } from '@hono/node-server'
|
|
|
// 新增:导入 Socket.IO
|
|
|
import { Server } from 'socket.io';
|
|
|
+import { progressTrackingPlugin} from './vite-plugin-compile-progress.js';
|
|
|
|
|
|
|
|
|
// 创建 Hono 应用
|
|
|
const app = new Hono();// API路由
|
|
|
|
|
|
// 全局使用 Hono 日志中间件(记录所有请求)
|
|
|
-app.use('*', logger());
|
|
|
+// app.use('*', logger());
|
|
|
app.use('*', cors(
|
|
|
// {
|
|
|
// origin: ['http://localhost:3000'],
|
|
|
@@ -86,11 +87,14 @@ let vite;
|
|
|
if (!isProduction) {
|
|
|
console.log('开发环境: 初始化 Vite 开发服务器...');
|
|
|
const { createServer } = await import('vite');
|
|
|
+
|
|
|
+
|
|
|
vite = await createServer({
|
|
|
- server: { middlewareMode: {
|
|
|
+ server: {
|
|
|
+ middlewareMode: {
|
|
|
server: parentServer
|
|
|
},
|
|
|
- hmr: {
|
|
|
+ hmr: {
|
|
|
port: 8081,
|
|
|
clientPort: 443,
|
|
|
path: 'vite-hmr'
|
|
|
@@ -104,6 +108,9 @@ if (!isProduction) {
|
|
|
},
|
|
|
appType: 'custom',
|
|
|
base,
|
|
|
+ plugins: [
|
|
|
+ progressTrackingPlugin(),
|
|
|
+ ],
|
|
|
});
|
|
|
console.log('Vite 开发服务器初始化完成');
|
|
|
}
|
|
|
@@ -124,20 +131,24 @@ if (!isProduction) {
|
|
|
// 新增:加载 Socket.IO 中间件和路由
|
|
|
if (!isProduction) {
|
|
|
console.log('开发环境: 从 Vite 加载 Socket.IO 路由和中间件...');
|
|
|
- const socketModule = await vite.ssrLoadModule('./src/server/socket.ts');
|
|
|
-
|
|
|
- // 应用认证中间件
|
|
|
- if (socketModule.authMiddleware) {
|
|
|
- console.log('应用 Socket.IO 认证中间件');
|
|
|
- io.use(socketModule.authMiddleware);
|
|
|
- }
|
|
|
-
|
|
|
- // 应用路由
|
|
|
- if (socketModule.default) {
|
|
|
- console.log('注册 Socket.IO 路由处理');
|
|
|
- socketModule.default(io);
|
|
|
+ try {
|
|
|
+ const socketModule = await vite.ssrLoadModule('./src/server/socket.ts');
|
|
|
+
|
|
|
+ // 应用认证中间件
|
|
|
+ if (socketModule.authMiddleware) {
|
|
|
+ console.log('应用 Socket.IO 认证中间件');
|
|
|
+ io.use(socketModule.authMiddleware);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 应用路由
|
|
|
+ if (socketModule.default) {
|
|
|
+ console.log('注册 Socket.IO 路由处理');
|
|
|
+ socketModule.default(io);
|
|
|
+ }
|
|
|
+ console.log('Socket.IO 路由和中间件加载完成');
|
|
|
+ } catch (err) {
|
|
|
+ console.error('开发环境加载 Socket.IO 模块失败:', err);
|
|
|
}
|
|
|
- console.log('Socket.IO 路由和中间件加载完成');
|
|
|
} else {
|
|
|
console.log('生产环境: 加载编译后的 Socket.IO 路由和中间件...');
|
|
|
try {
|