|
|
@@ -8,11 +8,10 @@ import { vitePlugin as remix } from "@remix-run/dev";
|
|
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
|
const {
|
|
|
- VITE_BACKEND_HOST = "127.0.0.1:3000",
|
|
|
- VITE_USE_TLS = "false",
|
|
|
- VITE_FRONTEND_PORT = "3001",
|
|
|
- VITE_INSECURE_SKIP_VERIFY = "false",
|
|
|
- VITE_WATCH_USE_POLLING = "false",
|
|
|
+ VITE_BACKEND_HOST = "127.0.0.1:3000",
|
|
|
+ VITE_USE_TLS = "false",
|
|
|
+ VITE_FRONTEND_PORT = "3001",
|
|
|
+ VITE_INSECURE_SKIP_VERIFY = "false",
|
|
|
} = loadEnv(mode, process.cwd());
|
|
|
|
|
|
const USE_TLS = VITE_USE_TLS === "true";
|
|
|
@@ -23,6 +22,35 @@ export default defineConfig(({ mode }) => {
|
|
|
const API_URL = `${PROTOCOL}://${VITE_BACKEND_HOST}/`;
|
|
|
const WS_URL = `${WS_PROTOCOL}://${VITE_BACKEND_HOST}/`;
|
|
|
const FE_PORT = Number.parseInt(VITE_FRONTEND_PORT, 10);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * This script is used to unpack the client directory from the frontend build directory.
|
|
|
+ * Remix SPA mode builds the client directory into the build directory. This function
|
|
|
+ * moves the contents of the client directory to the build directory and then removes the
|
|
|
+ * client directory.
|
|
|
+ *
|
|
|
+ * This script is used in the buildEnd function of the Vite config.
|
|
|
+ */
|
|
|
+ const unpackClientDirectory = async () => {
|
|
|
+ const fs = await import("fs");
|
|
|
+ const path = await import("path");
|
|
|
+
|
|
|
+ const buildDir = path.resolve(__dirname, "build");
|
|
|
+ const clientDir = path.resolve(buildDir, "client");
|
|
|
+
|
|
|
+ const files = await fs.promises.readdir(clientDir);
|
|
|
+ await Promise.all(
|
|
|
+ files.map((file) =>
|
|
|
+ fs.promises.rename(
|
|
|
+ path.resolve(clientDir, file),
|
|
|
+ path.resolve(buildDir, file),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+
|
|
|
+ await fs.promises.rmdir(clientDir);
|
|
|
+ };
|
|
|
+
|
|
|
return {
|
|
|
plugins: [
|
|
|
!process.env.VITEST &&
|
|
|
@@ -33,6 +61,7 @@ export default defineConfig(({ mode }) => {
|
|
|
v3_throwAbortReason: true,
|
|
|
},
|
|
|
appDirectory: "src",
|
|
|
+ buildEnd: unpackClientDirectory,
|
|
|
ssr: false,
|
|
|
}),
|
|
|
viteTsconfigPaths(),
|
|
|
@@ -67,5 +96,5 @@ export default defineConfig(({ mode }) => {
|
|
|
include: ["src/**/*.{ts,tsx}"],
|
|
|
},
|
|
|
},
|
|
|
- }
|
|
|
+ };
|
|
|
});
|