From 56eeefd7d4acb2e8ae608b2be0ecabde3b718814 Mon Sep 17 00:00:00 2001 From: Taevas Date: Tue, 11 Mar 2025 14:01:04 +0100 Subject: [PATCH] Use Vite (again) to reduce website size Here's some data: Netlify: Transferred 78kB JS + 5.17kB CSS / Size 255kB JS + 26kB CSS Prev. commit: Transf. 922kB JS + 122kB CSS / Size 922kB JS + 122kB CSS This commit: Transf. 257kB JS + 26kB CSS / Size 257kB JS + 26kB CSS I am pretty sure I could reduce Transf. through Accept-Encoding stuff --- bun.lockb | Bin 219945 -> 238418 bytes index.html | 2 +- index.ts | 35 ++++++----------------------------- package.json | 21 +++++++++++---------- vite.config.js | 13 +++++++++++++ 5 files changed, 31 insertions(+), 40 deletions(-) create mode 100644 vite.config.js diff --git a/bun.lockb b/bun.lockb index 352c549272b030a34979c1ce753f4cf7304d06e8..24398d906a8e446901c84e2fc999ad116c8beefe 100755 GIT binary patch delta 62517 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 UovD06qTUN$Rz9zfe#z7S2i0yZ`~Uy| delta 50166 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 diff --git a/index.html b/index.html index 739595a..3b8e86e 100644 --- a/index.html +++ b/index.html @@ -42,6 +42,6 @@
- + diff --git a/index.ts b/index.ts index ab070e0..8ec76ae 100644 --- a/index.ts +++ b/index.ts @@ -49,16 +49,6 @@ const api_endpoints: Handler[] = [ website_umami ]; -const builds = await Bun.build({ - entrypoints: ["./src/App.tsx", "index.css"], - target: "browser", - minify: { - identifiers: true, - syntax: true, - whitespace: true, - }, -}); - const servers: Server[] = ports.map((port) => Bun.serve({ idleTimeout: 30, // @ts-expect-error https://github.com/oven-sh/bun/issues/17772 @@ -70,7 +60,7 @@ const servers: Server[] = ports.map((port) => Bun.serve({ // merciless sanitization let pathname = url.pathname; pathname = pathname - .replace(/([^A-Za-z0-9/.-_])/g, "") + .replace(/([^A-Za-z0-9/._-])/g, "") .replace(/(? Bun.serve({ // MAIN PAGE if (pathname === "/") { - const indexContent = await Bun.file("index.html").text(); + const indexContent = await Bun.file("./dist/index.html").text(); return new Response(indexContent, {headers: {"Content-Type": "text/html"}}); } - if (pathname === "/App.tsx" && req.method === "GET") { - return new Response(builds.outputs[0].stream(), { - headers: { - "Content-Type": builds.outputs[0].type, - }, - }); - }; - - // EXTERNAL TO MAIN PAGE - if (pathname === "/index.css" && req.method === "GET") { - return new Response(builds.outputs[1].stream(), { - headers: { - "Content-Type": builds.outputs[1].type, - }, - }); - }; - + if (pathname.startsWith("/compressed")) { + const asset = Bun.file("./dist" + pathname); + return await asset.exists() ? new Response(asset, {status: 200}) : new Response("Not Found", {status: 404}); + } if (pathname.startsWith("/assets")) { const asset = Bun.file("." + pathname); diff --git a/package.json b/package.json index 0bf741d..201eb01 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "scripts": { - "dev": "bunx bun css && bun --hot index.ts --dev", - "css": "bun tailwindcss -i ./src/App.css -o index.css", - "lint": "bunx eslint .", - "start": "bun install && bunx bun css && bun run index.ts" + "dev": "bun css && vite build && bun --hot index.ts --dev", + "css": "tailwindcss -i ./src/App.css -o index.css", + "lint": "eslint .", + "getready": "bun install && bun css && vite build", + "start": "bun getready && bun run index.ts" }, "dependencies": { "@bachmacintosh/wanikani-api-types": "^1.7.0", @@ -18,24 +19,24 @@ }, "devDependencies": { "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "^9.21.0", + "@eslint/js": "^9.22.0", "@stylistic/eslint-plugin": "^3.1.0", "@tailwindcss/forms": "^0.5.10", - "@tailwindcss/postcss": "^4.0.11", + "@tailwindcss/postcss": "^4.0.12", "@types/bun": "latest", - "@types/node": "^20.17.23", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", - "autoprefixer": "^10.4.20", + "autoprefixer": "^10.4.21", "dotenv": "^16.4.7", - "eslint": "^9.21.0", + "eslint": "^9.22.0", "eslint-config-xo-typescript": "^7.0.0", "eslint-plugin-react": "^7.37.4", "postcss": "^8.5.3", "react-animate-height": "^3.2.3", "tailwindcss": "^3.4.17", "typescript": "^5.8.2", - "typescript-eslint": "^8.26.0" + "typescript-eslint": "^8.26.1", + "vite": "^6.2.1" }, "imports": { "#Main/*": "./src/Main/*", diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..9bcbc55 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,13 @@ +export default { + build: { + outDir: "dist", + rollupOptions: { + output: { + inlineDynamicImports : true, + entryFileNames: `compressed/[name].js`, + chunkFileNames: `compressed/[name].js`, + assetFileNames: `compressed/[name].[ext]` + } + } + } +} \ No newline at end of file