Explorar el Código

♻️ refactor(server): 重构项目结构和构建流程

- 移除冗余的 build:api 构建命令,简化构建流程
- 重命名 preview 命令为 start,更符合生产环境启动习惯
- 整合 Socket.IO 功能到主服务器模块,优化模块引用
- 调整 socket 中间件和处理器的导入方式,统一入口
- 修改开发和生产环境下的 socket 模块加载逻辑,确保一致性
yourname hace 6 meses
padre
commit
aaf22a9195
Se han modificado 3 ficheros con 15 adiciones y 13 borrados
  1. 2 3
      package.json
  2. 10 10
      server.js
  3. 3 0
      src/server/index.tsx

+ 2 - 3
package.json

@@ -7,11 +7,10 @@
     "dev": "PORT=8080 node server",
     "dev:stock": "PORT=8080 cross-env DEBUG=backend:*,socket:* node server",
     "dev:socket": "PORT=8080 cross-env DEBUG=socket:* node server",
-    "build": "npm run build:client && npm run build:server && npm run build:api",
+    "build": "npm run build:client && npm run build:server",
     "build:client": "vite build --outDir dist/client --manifest",
     "build:server": "vite build --ssr src/server/index.tsx --outDir dist/server",
-    "build:api": "vite build --ssr src/server/api.ts --outDir dist/api",
-    "preview": "PORT=8080 cross-env NODE_ENV=production node server"
+    "start": "PORT=8080 cross-env NODE_ENV=production node server"
   },
   "dependencies": {
     "@ant-design/icons": "^6.0.0",

+ 10 - 10
server.js

@@ -124,18 +124,18 @@ const processDevTemplate = async (template) => {
 if (!isProduction) {
   console.log('开发环境: 从 Vite 加载 Socket.IO 路由和中间件...');
   try {
-    const socketModule = await vite.ssrLoadModule('./src/server/socket.ts');
+    const apiModule = await vite.ssrLoadModule('./src/server/index.tsx');
     
     // 应用认证中间件
-    if (socketModule.authMiddleware) {
+    if (apiModule.socketAuthMiddleware) {
       console.log('应用 Socket.IO 认证中间件');
-      io.use(socketModule.authMiddleware);
+      io.use(apiModule.socketAuthMiddleware);
     }
     
     // 应用路由
-    if (socketModule.default) {
+    if (apiModule.socketHandler) {
       console.log('注册 Socket.IO 路由处理');
-      socketModule.default(io);
+      apiModule.socketHandler(io);
     }
     console.log('Socket.IO 路由和中间件加载完成');
   } catch (err) {
@@ -144,18 +144,18 @@ if (!isProduction) {
 } else {
   console.log('生产环境: 加载编译后的 Socket.IO 路由和中间件...');
   try {
-    const socket = (await import('./dist/socket/socket.js')).default;
+    const apiModule = (await import('./dist/server/index.js'));
     
     // 应用认证中间件
-    if (socket.authMiddleware) {
+    if (apiModule.socketAuthMiddleware) {
       console.log('应用 Socket.IO 认证中间件');
-      io.use(socket.authMiddleware);
+      io.use(apiModule.socketAuthMiddleware);
     }
     
     // 应用路由
-    if (socket.default) {
+    if (apiModule.socketHandler) {
       console.log('注册 Socket.IO 路由处理');
-      socket.default(io);
+      apiModule.socketHandler(io);
     }
     console.log('Socket.IO 路由和中间件加载完成');
   } catch (err) {

+ 3 - 0
src/server/index.tsx

@@ -27,4 +27,7 @@ export const template = renderToStaticMarkup(
 // 导出 API 路由
 export { default as api } from './api';
 
+// 导出 Socket.IO 相关功能
+export { default as socketHandler, authMiddleware as socketAuthMiddleware } from './socket';
+