From 4e6e5972e899fa9b0cdf3eda41cb8ad82369c93c Mon Sep 17 00:00:00 2001 From: jason5ng32 Date: Sun, 12 May 2024 10:34:07 +0800 Subject: [PATCH] Structure improvements --- Dockerfile | 4 +-- server.js => backend-server.js | 0 static-server.js => frontend-server.js | 10 +++---- {src => frontend}/App.vue | 0 .../components/advancedtools.vue | 0 .../components/censorshipcheck.vue | 0 {src => frontend}/components/connectivity.vue | 0 {src => frontend}/components/dnsleaks.vue | 0 {src => frontend}/components/dnsresolver.vue | 0 {src => frontend}/components/empty.vue | 0 {src => frontend}/components/footer.vue | 0 .../components/globallatency.vue | 0 {src => frontend}/components/help.vue | 0 .../components/invisibilitytest.vue | 0 {src => frontend}/components/ipcheck.vue | 0 {src => frontend}/components/mtrtest.vue | 0 {src => frontend}/components/nav.vue | 0 {src => frontend}/components/preferences.vue | 0 {src => frontend}/components/pwa.vue | 0 {src => frontend}/components/queryip.vue | 0 {src => frontend}/components/ruletest.vue | 0 {src => frontend}/components/speedtest.vue | 0 {src => frontend}/components/webrtc.vue | 0 {src => frontend}/components/whois.vue | 0 {src => frontend}/i18n.js | 0 {src => frontend}/locales/en.json | 0 {src => frontend}/locales/fr.json | 0 {src => frontend}/locales/zh.json | 0 {src => frontend}/main.js | 0 {src => frontend}/router/index.js | 0 {src => frontend}/shortcut.js | 0 {src => frontend}/store.js | 0 {src => frontend}/style.css | 0 frontend/utils/system-detect.js | 26 +++++++++++++++++++ index.html | 2 +- package.json | 8 +++--- vite.config.js | 2 +- 37 files changed, 39 insertions(+), 13 deletions(-) rename server.js => backend-server.js (100%) rename static-server.js => frontend-server.js (77%) rename {src => frontend}/App.vue (100%) rename {src => frontend}/components/advancedtools.vue (100%) rename {src => frontend}/components/censorshipcheck.vue (100%) rename {src => frontend}/components/connectivity.vue (100%) rename {src => frontend}/components/dnsleaks.vue (100%) rename {src => frontend}/components/dnsresolver.vue (100%) rename {src => frontend}/components/empty.vue (100%) rename {src => frontend}/components/footer.vue (100%) rename {src => frontend}/components/globallatency.vue (100%) rename {src => frontend}/components/help.vue (100%) rename {src => frontend}/components/invisibilitytest.vue (100%) rename {src => frontend}/components/ipcheck.vue (100%) rename {src => frontend}/components/mtrtest.vue (100%) rename {src => frontend}/components/nav.vue (100%) rename {src => frontend}/components/preferences.vue (100%) rename {src => frontend}/components/pwa.vue (100%) rename {src => frontend}/components/queryip.vue (100%) rename {src => frontend}/components/ruletest.vue (100%) rename {src => frontend}/components/speedtest.vue (100%) rename {src => frontend}/components/webrtc.vue (100%) rename {src => frontend}/components/whois.vue (100%) rename {src => frontend}/i18n.js (100%) rename {src => frontend}/locales/en.json (100%) rename {src => frontend}/locales/fr.json (100%) rename {src => frontend}/locales/zh.json (100%) rename {src => frontend}/main.js (100%) rename {src => frontend}/router/index.js (100%) rename {src => frontend}/shortcut.js (100%) rename {src => frontend}/store.js (100%) rename {src => frontend}/style.css (100%) create mode 100644 frontend/utils/system-detect.js diff --git a/Dockerfile b/Dockerfile index 8377914e..687bf7c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,8 +12,8 @@ WORKDIR /app COPY --from=build-stage /app/node_modules ./node_modules COPY --from=build-stage /app/package.json ./ COPY --from=build-stage /app/dist ./dist -COPY --from=build-stage /app/server.js ./ -COPY --from=build-stage /app/static-server.js ./ +COPY --from=build-stage /app/backend-server.js ./ +COPY --from=build-stage /app/frontend-server.js ./ COPY --from=build-stage /app/api ./api EXPOSE 18966 diff --git a/server.js b/backend-server.js similarity index 100% rename from server.js rename to backend-server.js diff --git a/static-server.js b/frontend-server.js similarity index 77% rename from static-server.js rename to frontend-server.js index 65cd8203..d98a1425 100644 --- a/static-server.js +++ b/frontend-server.js @@ -1,4 +1,4 @@ -// static-server.js +// frontend-server.js import dotenv from 'dotenv'; import express from 'express'; import path from 'path'; @@ -7,7 +7,7 @@ import { createProxyMiddleware } from 'http-proxy-middleware'; dotenv.config(); -const staticApp = express(); +const frontendApp = express(); const backEndPort = parseInt(process.env.BACKEND_PORT || 11966, 10); const frontEndPort = parseInt(process.env.FRONTEND_PORT || 18966, 10); @@ -15,15 +15,15 @@ const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // API 请求代理到后端服务 -staticApp.use('/api', createProxyMiddleware({ +frontendApp.use('/api', createProxyMiddleware({ target: `http://localhost:${backEndPort}/api`, changeOrigin: true })); // 设置静态文件目录 -staticApp.use(express.static(path.join(__dirname, './dist'))); +frontendApp.use(express.static(path.join(__dirname, './dist'))); // 启动静态文件服务 -staticApp.listen(frontEndPort, () => { +frontendApp.listen(frontEndPort, () => { console.log(`Static file server running on port http://localhost:${frontEndPort}`); }); diff --git a/src/App.vue b/frontend/App.vue similarity index 100% rename from src/App.vue rename to frontend/App.vue diff --git a/src/components/advancedtools.vue b/frontend/components/advancedtools.vue similarity index 100% rename from src/components/advancedtools.vue rename to frontend/components/advancedtools.vue diff --git a/src/components/censorshipcheck.vue b/frontend/components/censorshipcheck.vue similarity index 100% rename from src/components/censorshipcheck.vue rename to frontend/components/censorshipcheck.vue diff --git a/src/components/connectivity.vue b/frontend/components/connectivity.vue similarity index 100% rename from src/components/connectivity.vue rename to frontend/components/connectivity.vue diff --git a/src/components/dnsleaks.vue b/frontend/components/dnsleaks.vue similarity index 100% rename from src/components/dnsleaks.vue rename to frontend/components/dnsleaks.vue diff --git a/src/components/dnsresolver.vue b/frontend/components/dnsresolver.vue similarity index 100% rename from src/components/dnsresolver.vue rename to frontend/components/dnsresolver.vue diff --git a/src/components/empty.vue b/frontend/components/empty.vue similarity index 100% rename from src/components/empty.vue rename to frontend/components/empty.vue diff --git a/src/components/footer.vue b/frontend/components/footer.vue similarity index 100% rename from src/components/footer.vue rename to frontend/components/footer.vue diff --git a/src/components/globallatency.vue b/frontend/components/globallatency.vue similarity index 100% rename from src/components/globallatency.vue rename to frontend/components/globallatency.vue diff --git a/src/components/help.vue b/frontend/components/help.vue similarity index 100% rename from src/components/help.vue rename to frontend/components/help.vue diff --git a/src/components/invisibilitytest.vue b/frontend/components/invisibilitytest.vue similarity index 100% rename from src/components/invisibilitytest.vue rename to frontend/components/invisibilitytest.vue diff --git a/src/components/ipcheck.vue b/frontend/components/ipcheck.vue similarity index 100% rename from src/components/ipcheck.vue rename to frontend/components/ipcheck.vue diff --git a/src/components/mtrtest.vue b/frontend/components/mtrtest.vue similarity index 100% rename from src/components/mtrtest.vue rename to frontend/components/mtrtest.vue diff --git a/src/components/nav.vue b/frontend/components/nav.vue similarity index 100% rename from src/components/nav.vue rename to frontend/components/nav.vue diff --git a/src/components/preferences.vue b/frontend/components/preferences.vue similarity index 100% rename from src/components/preferences.vue rename to frontend/components/preferences.vue diff --git a/src/components/pwa.vue b/frontend/components/pwa.vue similarity index 100% rename from src/components/pwa.vue rename to frontend/components/pwa.vue diff --git a/src/components/queryip.vue b/frontend/components/queryip.vue similarity index 100% rename from src/components/queryip.vue rename to frontend/components/queryip.vue diff --git a/src/components/ruletest.vue b/frontend/components/ruletest.vue similarity index 100% rename from src/components/ruletest.vue rename to frontend/components/ruletest.vue diff --git a/src/components/speedtest.vue b/frontend/components/speedtest.vue similarity index 100% rename from src/components/speedtest.vue rename to frontend/components/speedtest.vue diff --git a/src/components/webrtc.vue b/frontend/components/webrtc.vue similarity index 100% rename from src/components/webrtc.vue rename to frontend/components/webrtc.vue diff --git a/src/components/whois.vue b/frontend/components/whois.vue similarity index 100% rename from src/components/whois.vue rename to frontend/components/whois.vue diff --git a/src/i18n.js b/frontend/i18n.js similarity index 100% rename from src/i18n.js rename to frontend/i18n.js diff --git a/src/locales/en.json b/frontend/locales/en.json similarity index 100% rename from src/locales/en.json rename to frontend/locales/en.json diff --git a/src/locales/fr.json b/frontend/locales/fr.json similarity index 100% rename from src/locales/fr.json rename to frontend/locales/fr.json diff --git a/src/locales/zh.json b/frontend/locales/zh.json similarity index 100% rename from src/locales/zh.json rename to frontend/locales/zh.json diff --git a/src/main.js b/frontend/main.js similarity index 100% rename from src/main.js rename to frontend/main.js diff --git a/src/router/index.js b/frontend/router/index.js similarity index 100% rename from src/router/index.js rename to frontend/router/index.js diff --git a/src/shortcut.js b/frontend/shortcut.js similarity index 100% rename from src/shortcut.js rename to frontend/shortcut.js diff --git a/src/store.js b/frontend/store.js similarity index 100% rename from src/store.js rename to frontend/store.js diff --git a/src/style.css b/frontend/style.css similarity index 100% rename from src/style.css rename to frontend/style.css diff --git a/frontend/utils/system-detect.js b/frontend/utils/system-detect.js new file mode 100644 index 00000000..1cf8ab71 --- /dev/null +++ b/frontend/utils/system-detect.js @@ -0,0 +1,26 @@ +// browserDetect.js +const detectBrowser = () => { + const userAgent = window.navigator.userAgent; + const isFirefox = userAgent.includes('Firefox'); + const isOpera = userAgent.includes('Opera') || userAgent.includes('OPR'); + const isIE = userAgent.includes('Trident'); + const isEdge = userAgent.includes('Edge'); + const isChrome = userAgent.includes('Chrome'); + const isSafari = userAgent.includes('Safari') && !isChrome; + + return { isFirefox, isOpera, isIE, isEdge, isChrome, isSafari }; +}; + +const detectOS = () => { + const platform = window.navigator.platform; + const userAgent = window.navigator.userAgent; + const isMac = platform.startsWith('Mac'); + const isWindows = platform.startsWith('Win'); + const isLinux = platform.includes('Linux') && !userAgent.includes('Android'); + const isAndroid = userAgent.includes('Android'); + const isIOS = /iPhone|iPad|iPod/.test(platform); + + return { isMac, isWindows, isLinux, isAndroid, isIOS }; +}; + +export { detectBrowser, detectOS }; \ No newline at end of file diff --git a/index.html b/index.html index a60290d8..6b4edf1f 100644 --- a/index.html +++ b/index.html @@ -63,7 +63,7 @@
- + \ No newline at end of file diff --git a/package.json b/package.json index 9c98633a..74a5af9e 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,12 @@ "version": "3.0.0", "type": "module", "scripts": { - "dev": "concurrently \"vite\" \"nodemon server.js\"", + "dev": "concurrently \"vite\" \"nodemon backend-server.js\"", "build": "vite build", "preview": "vite preview", - "start-server": "node server.js", - "start-static": "node static-server.js", - "start": "concurrently \"npm run start-static\" \"npm run start-server\"" + "start-backend": "node backend-server.js", + "start-frontend": "node frontend-server.js", + "start": "concurrently \"npm run start-frontend\" \"npm run start-backend\"" }, "dependencies": { "@analytics/google-analytics": "^1.0.7", diff --git a/vite.config.js b/vite.config.js index 8b28bcc0..7408ed51 100644 --- a/vite.config.js +++ b/vite.config.js @@ -64,7 +64,7 @@ export default defineConfig({ ], resolve: { alias: { - '@': '/src', + '@': '/frontend', }, }, build: {