From be2db3f1700c0fd99eec18f65703ad032e777454 Mon Sep 17 00:00:00 2001 From: Leyang Date: Sat, 23 Dec 2023 12:00:03 +0800 Subject: [PATCH] feat: use vite plugin pwa for generate right sw.js (#2658) Co-authored-by: boojack --- .gitignore | 2 ++ docs/development.md | 2 +- web/index.html | 9 -------- web/package.json | 3 ++- web/public/manifest.json | 33 ----------------------------- web/public/sw.js | 10 --------- web/vite.config.ts | 45 +++++++++++++++++++++++++++++++++++++++- 7 files changed, 49 insertions(+), 55 deletions(-) delete mode 100644 web/public/manifest.json delete mode 100644 web/public/sw.js diff --git a/.gitignore b/.gitignore index 4a6159e4..ba1958d4 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ build .idea bin/air + +dev-dist \ No newline at end of file diff --git a/docs/development.md b/docs/development.md index 711886cc..807a7f68 100644 --- a/docs/development.md +++ b/docs/development.md @@ -21,7 +21,7 @@ Memos is built with a curated tech stack. It is optimized for developer experien git clone https://github.com/usememos/memos ``` -2. Start backend server with `air`(with live reload) +2. Start backend server with [`air`](https://github.com/cosmtrek/air) (with live reload) ```bash air -c scripts/.air.toml diff --git a/web/index.html b/web/index.html index 92f44813..12b6dc93 100644 --- a/web/index.html +++ b/web/index.html @@ -6,20 +6,11 @@ - Memos
- diff --git a/web/package.json b/web/package.json index 1d9d42d7..f8ac955f 100644 --- a/web/package.json +++ b/web/package.json @@ -59,7 +59,8 @@ "postcss": "^8.4.32", "prettier": "2.6.2", "typescript": "^5.3.3", - "vite": "^5.0.10" + "vite": "^5.0.10", + "vite-plugin-pwa": "^0.17.4" }, "resolutions": { "csstype": "3.1.2" diff --git a/web/public/manifest.json b/web/public/manifest.json deleted file mode 100644 index f42f0470..00000000 --- a/web/public/manifest.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "short_name": "memos", - "name": "memos", - "description": "usememos/memos", - "start_url": "/", - "scope": "/", - "display": "standalone", - "theme_color": "#f4f4f5", - "background_color": "#f4f4f5", - "icons": [ - { - "src": "/logo.png", - "type": "image/png", - "sizes": "16x16" - }, - { - "src": "/logo.png", - "type": "image/png", - "sizes": "32x32" - }, - { - "src": "/logo.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/logo.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "any maskable" - } - ] -} diff --git a/web/public/sw.js b/web/public/sw.js deleted file mode 100644 index aeee59a0..00000000 --- a/web/public/sw.js +++ /dev/null @@ -1,10 +0,0 @@ -self.addEventListener("install", (event) => { - event.waitUntil((async () => {})()); - }); - - self.addEventListener("activate", (event) => { - event.waitUntil((async () => {})()); - }); - - self.addEventListener("fetch", (event) => {}); - \ No newline at end of file diff --git a/web/vite.config.ts b/web/vite.config.ts index 791a1f93..6295b74c 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,6 +1,7 @@ import react from "@vitejs/plugin-react-swc"; import { resolve } from "path"; import { defineConfig } from "vite"; +import { VitePWA } from "vite-plugin-pwa"; let devProxyServer = "http://localhost:8081/"; if (process.env.DEV_PROXY_SERVER && process.env.DEV_PROXY_SERVER.length > 0) { @@ -10,7 +11,49 @@ if (process.env.DEV_PROXY_SERVER && process.env.DEV_PROXY_SERVER.length > 0) { // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [ + react(), + VitePWA({ + manifestFilename: "manifest.json", + registerType: "autoUpdate", + devOptions: { + enabled: true, + }, + manifest: { + short_name: "memos", + name: "memos", + description: "usememos/memos", + start_url: "/", + scope: "/", + display: "standalone", + theme_color: "#f4f4f5", + background_color: "#f4f4f5", + icons: [ + { + src: "/logo.png", + type: "image/png", + sizes: "16x16", + }, + { + src: "/logo.png", + type: "image/png", + sizes: "32x32", + }, + { + src: "/logo.png", + sizes: "192x192", + type: "image/png", + }, + { + src: "/logo.png", + sizes: "512x512", + type: "image/png", + purpose: "any maskable", + }, + ], + }, + }), + ], server: { host: "0.0.0.0", port: 3001,