PWA

介绍

此特性集成了 @vite-pwa/sveltekit

传递 pwa 选项给默认主题来使用 PWA,该选项与 SvelteKit PWA Plugin Options 完全一致,并新增了 darkManifest,可以用来配置夜间模式下的 manifest 文件

在 svelte.config.js 中使用从 @sveltepress/theme-default 导出的 SERVICE_WORKER_PATH 配置 files.serviceWorker

svelte.config.js
+
+
+
+
import adapter  from '@sveltejs/adapter-static'
import { vitePreprocess  } from '@sveltejs/vite-plugin-svelte'

import { SERVICE_WORKER_PATH  } from '@sveltepress/theme-default' 

/** @type {import('@sveltejs/kit').Config} */
const config  = {
  extensions : ['.svelte', '.md'],
  preprocess : [vitePreprocess ()],
  kit : {
    adapter : adapter (),
    files : { 
      serviceWorker : SERVICE_WORKER_PATH , 
    }, 
  },
}

export default config 
ts
依赖需要

需要安装 workbox-window 来使得 PWA 功能正确工作

npm install --save workbox-window
sh

配置示例

用此站点使用的配置来举例:

export default {
  scope : '/',
  base : '/',
  strategies : 'generateSW',
  kit : {
    trailingSlash : 'always',
  },
  darkManifest : '/manifest-dark.webmanifest',
  manifest : {
    start_url : '/',
    scope : '/',
    name : 'Sveltepress zh-CN',
    short_name : 'Sveltepress zh-CN',
    icons : [
      {
        src : '/android-chrome-192x192.png',
        sizes : '192x192',
        type : 'image/png',
      },
      {
        src : '/android-chrome-512x512.png',
        sizes : '512x512',
        type : 'image/png',
      },
    ],
    theme_color : '#f2f2f2',
    background_color : '#f2f2f2',
    display : 'standalone',
  },
} as any
ts
最后更新于: 2024/11/25 05:47:03