0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Svelte5】vite-plugin-pwa の設定からスマホテストまで

0
Posted at

PWAとは?

開発環境

  • macOS 26.0.1
  • Svelte 5
  • Typescript
  • Vite

事前準備

vite-plugin-pwaをインストール

ngrokのインストールとアカウント作成
*ローカル環境を一時的にスマホで動作確認する為

SvelteのPJの追加設定内容

vite.config.ts
import { defineConfig, loadEnv } from 'vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
import { VitePWA } from 'vite-plugin-pwa';

export default defineConfig(({ mode }) => {
  // 環境変数を読み込む
  const env = loadEnv(mode, process.cwd(), '');
  
  return {
    plugins: [
      svelte(),
      VitePWA({
        // Service Workerを自動更新
        registerType: 'autoUpdate',
        // キャッシュする静的ファイル
        includeAssets: ['favicon.ico', 'icon-192.png', 'icon-512.png'],
        // pwaの設定内容
        manifest: {
          name: 'Svelte PWA Todo',
          short_name: 'Todo PWA',
          description: 'A simple PWA todo app built with Svelte 5',
          theme_color: '#ff3e00',
          background_color: '#ffffff',
          display: 'standalone',
          icons: [
            {
              src: 'icon-192.png',
              sizes: '192x192',
              type: 'image/png'
            },
            {
              src: 'icon-512.png',
              sizes: '512x512',
              type: 'image/png'
            }
          ]
        },
        // キャッシュ戦略の設定
        workbox: {
          globPatterns: ['**/*.{js,css,html,ico,png,svg}']
        }
      })
    ],
    server: {
      // ローカル環境で動作する為の設定
      host: process.env.NODE_ENV === 'development' ? '0.0.0.0' : 'localhost',
      port: 5173,
      strictPort: true,
      // HMRの設定
      hmr: {
        clientPort: 443,
        protocol: 'wss'
      },
      // 開発環境のみCORSを有効化
      cors: process.env.NODE_ENV === 'development',
      // 環境変数で指定、デフォルトはlocalhostのみ
      allowedHosts: env.ALLOWED_HOSTS 
        ? env.ALLOWED_HOSTS.split(',')
        : ['localhost']
    }
  };
});


スマホで動作確認

1, ngrokを使ってHTTPSトンネルを作成

ngrok http 3000

2, Forwardingで記載されてる外部URLにスマホでアクセス。
3, ブラウザの「ホーム画面に追加」などで、追加する

注意

iPhoneではSafariブラウザのみPWAインストールに対応

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?