Spaces:
Running
Running
Commit
·
a3cb895
1
Parent(s):
ff0a701
Fix: simplify vite config path resolution and use local vite binary
Browse files- Dockerfile +3 -3
- 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:
|
| 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
|
| 35 |
-
RUN cd app &&
|
| 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
|
|
|
|
|
|
|
|
|
|
| 4 |
|
| 5 |
// https://vitejs.dev/config/
|
| 6 |
export default defineConfig(({ mode }) => {
|
| 7 |
// Load env file from repository root (parent directory)
|
| 8 |
-
const
|
|
|
|
| 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:
|
| 33 |
resolve: {
|
| 34 |
alias: {
|
| 35 |
-
"@":
|
| 36 |
-
"@inc":
|
| 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: {
|