feat(studio): add PWA support (manifest + service worker)#413
Closed
dyjung150605 wants to merge 3 commits into
Closed
feat(studio): add PWA support (manifest + service worker)#413dyjung150605 wants to merge 3 commits into
dyjung150605 wants to merge 3 commits into
Conversation
- Add vite-plugin-pwa with autoUpdate strategy - Generate manifest.json (name, icons 128/256/512, theme_color) - Precache JS/CSS/HTML/WASM/PNG/fonts via workbox - Add theme-color meta + apple-touch-icon to index.html - Pin .npmrc legacy-peer-deps=true (vite-plugin-pwa peer is vite<=7)
- start_url/scope: '.' → '/rhwp/' (GitHub Pages subpath hardened) - icon-192.png added (PWA standard 192×192 size) - WASM removed from precache globPatterns → runtimeCaching CacheFirst (avoids 12 MB blocking SW installation; offline after first load) - .npmrc: add comment noting legacy-peer-deps is temporary Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
b40144f to
e832840
Compare
edwardkim
added a commit
that referenced
this pull request
Apr 28, 2026
- PR #413 (rhwp-studio PWA support, @dyjung150605) 옵션 A cherry-pick 머지 완료 - 이슈 #383 메인테이너 안내 7항목 100% 대응 - 4 환경 + fork 배포 사전 검증 - 검토 / 처리 보고서 추가 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim
added a commit
that referenced
this pull request
Apr 28, 2026
edwardkim
added a commit
that referenced
this pull request
Apr 28, 2026
Owner
|
완료. `devel` 에 cherry-pick (작성자 attribution 보존) 으로 머지됨 (commit `a216bd5`). 이슈 #383 자동 close 됩니다 (PR 본문 `closes #383` 명시). 머지 commit작성자 attribution 보존:
검증
평가이슈 #383 의 메인테이너 안내 7항목 모두 100% 대응 — start_url/scope, icon 192+maskable, registerType=autoUpdate 사유, legacy-peer-deps 임시성, WASM runtimeCaching 분리, E2E devOptions=false, deploy-pages.yml 무변경. 4 환경 (Chrome/Edge/Safari/Android) + fork 배포 사전 검증까지 신중하게 진행해 주신 점이 양호합니다. 본 저장소 배포 PWA 동작 확인머지 후 `deploy-pages.yml` 자동 트리거로 `https://edwardkim.github.io/rhwp/\` 배포가 갱신됩니다. PWA 설치 동작은 작업지시자가 본 저장소 배포에서 한 번 더 확인할 예정입니다. 좋은 기여 감사합니다. 첫 PR 환영합니다. |
Contributor
Author
|
리뷰와 머지에 감사드립니다! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
개요
rhwp-studio를 브라우저에서 설치 가능한 Progressive Web App(PWA) 으로 만듭니다.
vite-plugin-pwa+ Workbox를 사용하여 Web App Manifest와 Service Worker를 생성합니다.closes #383
변경 파일
rhwp-studio/package.jsonvite-plugin-pwa@^1.2.0,workbox-window@^7.4.0devDependency 추가rhwp-studio/.npmrclegacy-peer-deps=true(vite-plugin-pwa@1.2.0의 peer가 vite≤7; vite@8 공식 지원 추가 시 제거)rhwp-studio/vite.config.tsrhwp-studio/index.htmltheme-colormeta,apple-touch-iconlink 추가rhwp-studio/public/icons/icon-{128,192,256,512}.png메인테이너 점검 항목 대응
1. manifest 서브패스 정합
start_url: '/rhwp/',scope: '/rhwp/'— GitHub Pages 배포 경로(--base=/rhwp/)와 일치.2. icon 사이즈
192×192 추가 (PWA 권장 표준). 구성: 128 / 192 / 256 / 512 + 512 maskable.
3. registerType 정책:
autoUpdate선택rhwp-studio는 문서 편집기로 사용 도중 알림 팝업이 UX를 방해할 수 있어
autoUpdate를 택했습니다.12 MB WASM은 precache 대상에서 분리(아래 참고)하여 SW 설치 자체는 빠르게 유지됩니다.
배포 주기가 짧거나 향후 의견이 있으면
prompt로 전환도 쉽습니다.4.
.npmrc임시성 명시파일 내에 "vite-plugin-pwa가 vite@8 공식 지원 추가 시 제거" 주석 포함.
5. WASM runtimeCaching 분리
WASM(~12 MB)을
globPatternsprecache에서 제외하고runtimeCaching: CacheFirst로 처리합니다.→ SW 설치 단계에서 12 MB 다운로드를 강제하지 않음.
→ 첫 실제 로드 시 캐시되어 이후 오프라인에서도 사용 가능.
6. E2E 테스트 회귀
devOptions: { enabled: false }설정으로 dev 서버에서는 SW가 비활성화됩니다.기존 e2e 테스트(Playwright/puppeteer-core 기반)는 dev 서버를 대상으로 실행되어 SW와 충돌하지 않습니다.
7.
deploy-pages.yml무변경rhwp-studio/.npmrc가npm install시 자동 적용되어 워크플로우 수정 불필요.fork(
dyjung150605/rhwp) 배포로 사전 검증: https://dyjung150605.github.io/rhwp/검증 환경
참고: 향후 개선 가능 사항 (이 PR 범위 밖)
@vite-pwa/assets-generator로 전 사이즈 자동 생성 가능start_url/scope를 빌드 시 env 주입 방식으로 변경하면 다른 base 경로에서도 재사용 가능