Open5

Next.jsでService Workerを導入する

CateiruCateiru

モチベーション

  • Web Pushを実装したく、そのための Service Worker を導入したい
  • /直下にjsファイルを置く必要がある
    • そのパス配下にしか適用されないため
  • ServiceWorkerもTypeScriptで書きたいが、Next.jsでいい感じに管理したい
CateiruCateiru

レギュレーション

  • 導入したいアプリケーションがApp Routerを使っているのでこれで考える
CateiruCateiru

案1 別パッケージにしてしまってビルド後のpublicディレクトリに突っ込む

  • 多分一番に考えられる方法
  • Dockerfileでビルドする分であれば楽
  • 問題は開発時で、hotreloadを効かせるのが大変かもしれない
    • ServiceWorkerだからhotreleadは逆にやらない方がいい?
  • パッケージ管理はどうする
    • pnpmなどのworkspace機能が使えそう
CateiruCateiru

案2 完全に別リポジトリで管理し、ロードバランサーなんかで統一

  • バグりそう(小並感)
  • だれか書いて
CateiruCateiru

案3 諦めてJavaScriptで書く

  • いや、そうなんだけどやっぱりTypeScriptで書きたいじゃん!!!!!
  • ちなみに、next-pwaなんかはJavaScriptで書いている
    • そもそも、リポジトリ全体でTypeScriptを使っていないので比較対象にはならなさそう