From 663398ebabd2497ba40b4634d96f2ce2d6d2aca6 Mon Sep 17 00:00:00 2001 From: Noah Hsu Date: Sat, 20 Aug 2022 14:15:07 +0800 Subject: [PATCH] chore: try to use `vite-plugin-dynamic-base` --- .env.development | 2 +- .env.production | 2 +- index.html | 7 +++-- package.json | 1 + pnpm-lock.yaml | 76 +++++++++++++++++++++++++++++++++++++++++++++ src/utils/config.ts | 2 +- vite.config.ts | 19 +++++++++++- 7 files changed, 102 insertions(+), 7 deletions(-) diff --git a/.env.development b/.env.development index 1b21bae..614e5bf 100644 --- a/.env.development +++ b/.env.development @@ -1 +1 @@ -VITE_SERVER_URL = "http://localhost:5244/" \ No newline at end of file +VITE_API_URL = "http://localhost:5244/" \ No newline at end of file diff --git a/.env.production b/.env.production index 27d2f08..e27fee0 100644 --- a/.env.production +++ b/.env.production @@ -1 +1 @@ -VITE_SERVER_URL = "/" \ No newline at end of file +VITE_API_URL = "/" \ No newline at end of file diff --git a/index.html b/index.html index 665a261..5c0b468 100644 --- a/index.html +++ b/index.html @@ -11,16 +11,17 @@ href="https://jsd.nn.ci/gh/alist-org/logo@main/logo.svg" /> Loading... - - + +
diff --git a/package.json b/package.json index d18db7e..369818b 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "terser": "^5.14.2", "typescript": "^4.7.4", "vite": "^3.0.8", + "vite-plugin-dynamic-base": "^0.4.4", "vite-plugin-solid": "^2.3.0" }, "dependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7216821..cec32fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,6 +25,7 @@ specifiers: terser: ^5.14.2 typescript: ^4.7.4 vite: ^3.0.8 + vite-plugin-dynamic-base: ^0.4.4 vite-plugin-solid: ^2.3.0 dependencies: @@ -54,6 +55,7 @@ devDependencies: terser: 5.14.2 typescript: 4.7.4 vite: 3.0.8_terser@5.14.2 + vite-plugin-dynamic-base: 0.4.4 vite-plugin-solid: 2.3.0_solid-js@1.4.8+vite@3.0.8 packages: @@ -665,6 +667,10 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /boolbase/1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -767,6 +773,21 @@ packages: requiresBuild: true dev: true + /css-select/4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-what/6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + /csstype/3.0.11: resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} dev: false @@ -803,10 +824,41 @@ packages: engines: {node: '>=0.3.1'} dev: false + /dom-serializer/1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /domelementtype/2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler/4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils/2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + /electron-to-chromium/1.4.221: resolution: {integrity: sha512-aWg2mYhpxZ6Q6Xvyk7B2ziBca4YqrCDlXzmcD7wuRs65pVEVkMT1u2ifdjpAQais2O2o0rW964ZWWWYRlAL/kw==} dev: true + /entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + /esbuild-android-64/0.14.54: resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} engines: {node: '>=12'} @@ -1215,6 +1267,11 @@ packages: space-separated-tokens: 2.0.1 dev: false + /he/1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + /hey-listen/1.0.8: resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} dev: false @@ -1814,10 +1871,23 @@ packages: whatwg-url: 5.0.0 dev: true + /node-html-parser/5.4.1: + resolution: {integrity: sha512-xy/O2wOEBJsIRLs4avwa1lVY7tIpXXOoHHUJLa0GvnoPPqMG1hgBVl1tNI3GHOwRktTVZy+Y6rjghk4B9/NLyg==} + dependencies: + css-select: 4.3.0 + he: 1.2.0 + dev: true + /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: true + /nth-check/2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + /once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -2238,6 +2308,12 @@ packages: vfile-message: 3.1.2 dev: false + /vite-plugin-dynamic-base/0.4.4: + resolution: {integrity: sha512-++d35lUSWhIRcoKfTUlWSe3BFMTJPB0iQzAhNCNwiFILfouXAosGhB0DNjtxiIuHSORSrxwawzlwByAGbDuJgA==} + dependencies: + node-html-parser: 5.4.1 + dev: true + /vite-plugin-solid/2.3.0_solid-js@1.4.8+vite@3.0.8: resolution: {integrity: sha512-N2sa54C3UZC2nN5vpj5o6YP+XdIAZW6n6xv8OasxNAcAJPFeZT7EOVvumL0V4c8hBz1yuYniMWdESY8807fVSg==} peerDependencies: diff --git a/src/utils/config.ts b/src/utils/config.ts index 2da9098..1ce38a1 100644 --- a/src/utils/config.ts +++ b/src/utils/config.ts @@ -14,7 +14,7 @@ if (window.ALIST.base_path) { setBasePath(window.ALIST.base_path); } -export let api = import.meta.env.VITE_SERVER_URL as string; +export let api = import.meta.env.VITE_API_URL as string; if (window.ALIST.api) { api = window.ALIST.api; } diff --git a/vite.config.ts b/vite.config.ts index 5c08fd4..b727399 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,6 +2,7 @@ import path from "path"; import { defineConfig } from "vite"; import solidPlugin from "vite-plugin-solid"; import legacy from "@vitejs/plugin-legacy"; +import { dynamicBase } from "vite-plugin-dynamic-base"; export default defineConfig({ resolve: { @@ -15,9 +16,25 @@ export default defineConfig({ legacy({ targets: ["defaults"], }), + dynamicBase({ + // dynamic public path var string, default window.__dynamic_base__ + publicPath: " window.__dynamic_base__", + // dynamic load resources on index.html, default false. maybe change default true + transformIndexHtml: true, + }), ], + base: process.env.NODE_ENV === "production" ? "/__dynamic_base__/" : "/", + // base: "/", build: { - target: "esnext", + target: "es2015", //next // polyfillDynamicImport: false, }, + // experimental: { + // renderBuiltUrl: (filename, { type, hostId, hostType }) => { + // if (type === "asset") { + // return { runtime: `window.ALIST.cdn/${filename}` }; + // } + // return { relative: true }; + // }, + // }, });