Skip to content

Commit 2caa6e7

Browse files
committed
Move all the frontend entrypoints to a dedicated directory
This will make it easier to add new entrypoints in the future without having to change the vite config
1 parent baaa425 commit 2caa6e7

File tree

12 files changed

+28
-29
lines changed

12 files changed

+28
-29
lines changed

frontend/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323

2424
<body>
2525
<div id="root"></div>
26-
<script type="module" src="/src/main.tsx"></script>
26+
<script type="module" src="/src/entrypoints/main.tsx"></script>
2727
</body>
2828
</html>

frontend/knip.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import type { KnipConfig } from "knip";
77

88
export default {
9-
entry: ["src/main.tsx", "src/swagger.ts", "src/routes/*"],
9+
entry: ["src/entrypoints/*", "src/routes/*"],
1010
ignore: [
1111
"src/gql/*",
1212
"src/routeTree.gen.ts",

frontend/package-lock.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
"rimraf": "^6.0.1",
7575
"storybook": "^10.0.5",
7676
"tailwindcss": "^3.4.18",
77+
"tinyglobby": "^0.2.15",
7778
"typescript": "^5.9.3",
7879
"vite": "7.2.2",
7980
"vite-plugin-compression": "^0.5.1",

frontend/src/main.tsx renamed to frontend/src/entrypoints/main.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import { TooltipProvider } from "@vector-im/compound-web";
1010
import { StrictMode, Suspense } from "react";
1111
import { createRoot } from "react-dom/client";
1212
import { I18nextProvider } from "react-i18next";
13-
import ErrorBoundary from "./components/ErrorBoundary";
14-
import LoadingScreen from "./components/LoadingScreen";
15-
import { queryClient } from "./graphql";
16-
import i18n, { setupI18n } from "./i18n";
17-
import { router } from "./router";
13+
import ErrorBoundary from "../components/ErrorBoundary";
14+
import LoadingScreen from "../components/LoadingScreen";
15+
import { queryClient } from "../graphql";
16+
import i18n, { setupI18n } from "../i18n";
17+
import { router } from "../router";
1818
import "./shared.css";
1919

2020
setupI18n();
File renamed without changes.
File renamed without changes.

frontend/src/templates.css renamed to frontend/src/entrypoints/templates.css

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55
* Please see LICENSE files in the repository root for full details.
66
*/
77

8-
@import url("./styles/cpd-button.css");
9-
@import url("./styles/cpd-form.css");
10-
@import url("./styles/cpd-link.css");
11-
@import url("./styles/cpd-text-control.css");
12-
@import url("./styles/cpd-mfa-control.css");
13-
@import url("./styles/cpd-checkbox-control.css");
14-
15-
@import url("./components/SessionCard/SessionCard.module.css");
16-
@import url("./components/Session/DeviceTypeIcon.module.css");
17-
@import url("./components/Layout/Layout.module.css");
18-
@import url("./components/Footer/Footer.module.css");
19-
@import url("./components/PageHeading/PageHeading.module.css");
8+
@import url("../styles/cpd-button.css");
9+
@import url("../styles/cpd-form.css");
10+
@import url("../styles/cpd-link.css");
11+
@import url("../styles/cpd-text-control.css");
12+
@import url("../styles/cpd-mfa-control.css");
13+
@import url("../styles/cpd-checkbox-control.css");
14+
15+
@import url("../components/SessionCard/SessionCard.module.css");
16+
@import url("../components/Session/DeviceTypeIcon.module.css");
17+
@import url("../components/Layout/Layout.module.css");
18+
@import url("../components/Footer/Footer.module.css");
19+
@import url("../components/PageHeading/PageHeading.module.css");
2020

2121
.cpd-text-body-lg-regular {
2222
font: var(--cpd-font-body-lg-regular);

frontend/vite.config.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import { readFile, writeFile } from "node:fs/promises";
88
import { resolve } from "node:path";
99

10+
import { globSync } from "tinyglobby";
1011
import { tanstackRouter } from "@tanstack/router-plugin/vite";
1112
import react from "@vitejs/plugin-react";
1213
import browserslistToEsbuild from "browserslist-to-esbuild";
@@ -53,12 +54,8 @@ export default defineConfig((env) => ({
5354
cssCodeSplit: true,
5455

5556
rollupOptions: {
56-
input: [
57-
resolve(__dirname, "src/main.tsx"),
58-
resolve(__dirname, "src/shared.css"),
59-
resolve(__dirname, "src/templates.css"),
60-
resolve(__dirname, "src/swagger.ts"),
61-
],
57+
// This uses all the files in the src/entrypoints directory as inputs
58+
input: globSync(resolve(__dirname, "src/entrypoints/**/*.{css,ts,tsx}")),
6259
},
6360
},
6461

templates/app.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<script>
2323
window.APP_CONFIG = JSON.parse("{{ config | tojson | add_slashes | safe }}");
2424
</script>
25-
{{ include_asset('src/main.tsx') | indent(4) | safe }}
25+
{{ include_asset('src/entrypoints/main.tsx') | indent(4) | safe }}
2626
</head>
2727

2828
<body>

0 commit comments

Comments
 (0)