fix: correct TypeScript build configuration to prevent .js pollution in src/
**Problem:** - TypeScript was compiling .js files directly into src/ alongside .ts files - This broke the app and polluted source control with build artifacts **Solution:** 1. Moved socket-server.ts from root to src/socket-server.ts - Updated imports to remove './src/' prefix (now './lib/...') 2. Updated tsconfig.server.json: - Added rootDir: "./src" to ensure clean dist/ structure - Updated include path from "socket-server.ts" to "src/socket-server.ts" 3. server.js already correctly requires from ./dist/* **Result:** - TypeScript now compiles to dist/ with clean structure: - src/socket-server.ts → dist/socket-server.js ✓ - src/db/index.ts → dist/db/index.js ✓ - No dist/src/ subdirectory ✓ - No .js files created in src/ ✓ - Dev server starts successfully - Build artifacts properly separated from source code 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1
apps/web/.gitignore
vendored
1
apps/web/.gitignore
vendored
@@ -38,6 +38,7 @@ next-env.d.ts
|
||||
/dist
|
||||
src/**/*.js
|
||||
src/**/*.js.map
|
||||
/socket-server.js
|
||||
|
||||
# vitest
|
||||
/.vitest
|
||||
|
||||
@@ -12,7 +12,7 @@ const handle = app.getRequestHandler()
|
||||
// Run migrations before starting server
|
||||
console.log('🔄 Running database migrations...')
|
||||
const { migrate } = require('drizzle-orm/better-sqlite3/migrator')
|
||||
const { db } = require('./src/db/index.js')
|
||||
const { db } = require('./dist/db/index')
|
||||
|
||||
try {
|
||||
migrate(db, { migrationsFolder: './drizzle' })
|
||||
@@ -35,7 +35,7 @@ app.prepare().then(() => {
|
||||
})
|
||||
|
||||
// Initialize Socket.IO
|
||||
const { initializeSocketServer } = require('./socket-server.js')
|
||||
const { initializeSocketServer } = require('./dist/socket-server')
|
||||
initializeSocketServer(server)
|
||||
|
||||
server
|
||||
|
||||
@@ -8,12 +8,12 @@ import {
|
||||
getArcadeSession,
|
||||
getArcadeSessionByRoom,
|
||||
updateSessionActivity,
|
||||
} from './src/lib/arcade/session-manager'
|
||||
import { createRoom, getRoomById } from './src/lib/arcade/room-manager'
|
||||
import { getRoomMembers, getUserRooms, setMemberOnline } from './src/lib/arcade/room-membership'
|
||||
import { getRoomActivePlayers } from './src/lib/arcade/player-manager'
|
||||
import type { GameMove, GameName } from './src/lib/arcade/validation'
|
||||
import { matchingGameValidator } from './src/lib/arcade/validation/MatchingGameValidator'
|
||||
} from './lib/arcade/session-manager'
|
||||
import { createRoom, getRoomById } from './lib/arcade/room-manager'
|
||||
import { getRoomMembers, getUserRooms, setMemberOnline } from './lib/arcade/room-membership'
|
||||
import { getRoomActivePlayers } from './lib/arcade/player-manager'
|
||||
import type { GameMove, GameName } from './lib/arcade/validation'
|
||||
import { matchingGameValidator } from './lib/arcade/validation/MatchingGameValidator'
|
||||
|
||||
// Use globalThis to store socket.io instance to avoid module isolation issues
|
||||
// This ensures the same instance is accessible across dynamic imports
|
||||
@@ -4,6 +4,7 @@
|
||||
"module": "commonjs",
|
||||
"target": "es2020",
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src",
|
||||
"noEmit": false,
|
||||
"incremental": false,
|
||||
"skipLibCheck": true,
|
||||
@@ -21,7 +22,7 @@
|
||||
"src/app/games/matching/context/types.ts",
|
||||
"src/app/games/matching/utils/cardGeneration.ts",
|
||||
"src/app/games/matching/utils/matchValidation.ts",
|
||||
"socket-server.ts"
|
||||
"src/socket-server.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
|
||||
Reference in New Issue
Block a user