瀏覽代碼

feat: add pwa

vben 4 年之前
父節點
當前提交
a1b9902b97
共有 6 個文件被更改,包括 834 次插入10 次删除
  1. 3 0
      .env.production
  2. 5 0
      CHANGELOG.zh_CN.md
  3. 1 0
      build/utils.ts
  4. 9 1
      build/vite/plugin/index.ts
  5. 1 0
      package.json
  6. 815 9
      yarn.lock

+ 3 - 0
.env.production

@@ -16,5 +16,8 @@ VITE_GLOB_API_URL=/api
 # Interface prefix
 # Interface prefix
 VITE_GLOB_API_URL_PREFIX=
 VITE_GLOB_API_URL_PREFIX=
 
 
+# use pwa
+VITE_USE_PWA = false
+
 # TODO use Cdn
 # TODO use Cdn
 VITE_USE_CDN = true
 VITE_USE_CDN = true

+ 5 - 0
CHANGELOG.zh_CN.md

@@ -1,11 +1,16 @@
 ## Wip
 ## Wip
 
 
+### ✨ Features
+
+- 新增`pwa`功能,可在`.env.production`开启
+
 ### 🎫 Chores
 ### 🎫 Chores
 
 
 - 升级 vite 版本为`v1.0.0.rc8`
 - 升级 vite 版本为`v1.0.0.rc8`
 - vite.config.ts 内部 plugins 抽取
 - vite.config.ts 内部 plugins 抽取
 - build 目录结构调整
 - build 目录结构调整
 - 依赖更新
 - 依赖更新
+- 文档更新
 
 
 ### ✨ Refactor
 ### ✨ Refactor
 
 

+ 1 - 0
build/utils.ts

@@ -80,6 +80,7 @@ export function isSiteMode(): boolean {
 export interface ViteEnv {
 export interface ViteEnv {
   VITE_PORT: number;
   VITE_PORT: number;
   VITE_USE_MOCK: boolean;
   VITE_USE_MOCK: boolean;
+  VITE_USE_PWA: boolean;
   VITE_PUBLIC_PATH: string;
   VITE_PUBLIC_PATH: string;
   VITE_PROXY: [string, string][];
   VITE_PROXY: [string, string][];
   VITE_GLOB_APP_TITLE: string;
   VITE_GLOB_APP_TITLE: string;

+ 9 - 1
build/vite/plugin/index.ts

@@ -2,6 +2,7 @@ import type { Plugin as VitePlugin } from 'vite';
 import type { Plugin as rollupPlugin } from 'rollup';
 import type { Plugin as rollupPlugin } from 'rollup';
 
 
 import { createMockServer } from 'vite-plugin-mock';
 import { createMockServer } from 'vite-plugin-mock';
+import { VitePWA } from 'vite-plugin-pwa';
 import ViteHtmlPlugin from 'vite-plugin-html';
 import ViteHtmlPlugin from 'vite-plugin-html';
 import PurgeIcons from 'vite-plugin-purge-icons';
 import PurgeIcons from 'vite-plugin-purge-icons';
 
 
@@ -17,7 +18,7 @@ import { GLOB_CONFIG_FILE_NAME } from '../../constant';
 
 
 // gen vite plugins
 // gen vite plugins
 export function createVitePlugins(viteEnv: ViteEnv) {
 export function createVitePlugins(viteEnv: ViteEnv) {
-  const { VITE_USE_MOCK, VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH } = viteEnv;
+  const { VITE_USE_MOCK, VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH, VITE_USE_PWA } = viteEnv;
 
 
   const vitePlugins: VitePlugin[] = [];
   const vitePlugins: VitePlugin[] = [];
 
 
@@ -43,6 +44,13 @@ export function createVitePlugins(viteEnv: ViteEnv) {
   // vite-plugin-purge-icons
   // vite-plugin-purge-icons
   vitePlugins.push(PurgeIcons());
   vitePlugins.push(PurgeIcons());
 
 
+  if (isProdFn() && VITE_USE_PWA) {
+    console.log('======================');
+    console.log(VITE_USE_PWA);
+    console.log('======================');
+    vitePlugins.push(VitePWA());
+  }
+
   // vite-plugin-mock
   // vite-plugin-mock
   if (isDevFn() && VITE_USE_MOCK) {
   if (isDevFn() && VITE_USE_MOCK) {
     // open mock
     // open mock

+ 1 - 0
package.json

@@ -91,6 +91,7 @@
     "vite-plugin-html": "^1.0.0-beta.2",
     "vite-plugin-html": "^1.0.0-beta.2",
     "vite-plugin-mock": "^1.0.4",
     "vite-plugin-mock": "^1.0.4",
     "vite-plugin-purge-icons": "^0.4.4",
     "vite-plugin-purge-icons": "^0.4.4",
+    "vite-plugin-pwa": "^0.1.2",
     "vue-eslint-parser": "^7.1.1",
     "vue-eslint-parser": "^7.1.1",
     "yargs": "^16.1.0"
     "yargs": "^16.1.0"
   },
   },

文件差異過大導致無法顯示
+ 815 - 9
yarn.lock


部分文件因文件數量過多而無法顯示