k-l-lambda Claude commited on
Commit
a3cb895
·
1 Parent(s): ff0a701

Fix: simplify vite config path resolution and use local vite binary

Browse files
Files changed (2) hide show
  1. Dockerfile +3 -3
  2. trigo-web/app/vite.config.ts +9 -5
Dockerfile CHANGED
@@ -3,7 +3,7 @@ FROM node:20-slim
3
  # Set noninteractive installation
4
  ENV DEBIAN_FRONTEND=noninteractive
5
 
6
- # Build timestamp to force cache invalidation: 2026-01-12T19:00
7
 
8
  # Install build dependencies
9
  RUN apt-get update && apt-get install -y \
@@ -31,8 +31,8 @@ RUN npm install --omit=dev && \
31
  # Skip jison parser build - pre-built tgnParser.cjs is already in public/lib/
32
  # RUN tsx tools/buildJisonParser.ts
33
 
34
- # Build frontend (generates dist folder) - use npx for more control
35
- RUN cd app && npx vite build --debug 2>&1 || (echo "Vite build failed" && ls -la node_modules/.bin/ && exit 1)
36
 
37
  # Build backend with esbuild (handles ESM imports without .js extensions)
38
  RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm --outfile=backend/dist/server.js --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
 
3
  # Set noninteractive installation
4
  ENV DEBIAN_FRONTEND=noninteractive
5
 
6
+ # Build timestamp to force cache invalidation: 2026-01-12T19:05
7
 
8
  # Install build dependencies
9
  RUN apt-get update && apt-get install -y \
 
31
  # Skip jison parser build - pre-built tgnParser.cjs is already in public/lib/
32
  # RUN tsx tools/buildJisonParser.ts
33
 
34
+ # Build frontend (generates dist folder) - use local vite binary
35
+ RUN cd app && ./node_modules/.bin/vite build 2>&1
36
 
37
  # Build backend with esbuild (handles ESM imports without .js extensions)
38
  RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm --outfile=backend/dist/server.js --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
trigo-web/app/vite.config.ts CHANGED
@@ -1,11 +1,15 @@
1
  import { defineConfig, loadEnv } from "vite";
2
  import vue from "@vitejs/plugin-vue";
3
- import { fileURLToPath, URL } from "node:url";
 
 
 
4
 
5
  // https://vitejs.dev/config/
6
  export default defineConfig(({ mode }) => {
7
  // Load env file from repository root (parent directory)
8
- const env = loadEnv(mode, fileURLToPath(new URL("..", import.meta.url)), "");
 
9
 
10
  return {
11
  // Load .env files from repository root
@@ -29,11 +33,11 @@ export default defineConfig(({ mode }) => {
29
  }
30
  ],
31
  // Point to parent project's public directory
32
- publicDir: fileURLToPath(new URL("../public", import.meta.url)),
33
  resolve: {
34
  alias: {
35
- "@": fileURLToPath(new URL("./src", import.meta.url)),
36
- "@inc": fileURLToPath(new URL("../inc", import.meta.url))
37
  }
38
  },
39
  server: {
 
1
  import { defineConfig, loadEnv } from "vite";
2
  import vue from "@vitejs/plugin-vue";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+
6
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
 
8
  // https://vitejs.dev/config/
9
  export default defineConfig(({ mode }) => {
10
  // Load env file from repository root (parent directory)
11
+ const rootDir = path.resolve(__dirname, "..");
12
+ const env = loadEnv(mode, rootDir, "");
13
 
14
  return {
15
  // Load .env files from repository root
 
33
  }
34
  ],
35
  // Point to parent project's public directory
36
+ publicDir: path.resolve(__dirname, "../public"),
37
  resolve: {
38
  alias: {
39
+ "@": path.resolve(__dirname, "./src"),
40
+ "@inc": path.resolve(__dirname, "../inc")
41
  }
42
  },
43
  server: {