REACT

[React]PWA 세팅하는 방법

[React]PWA 세팅하는 방법

PWA란?

PWA(progressive web app)의 줄임말로 웹사이트를 모바일 앱처럼 설치해서 사용할 수 있는 기술이다.

  • 설치 마케팅 비용이 적다.
  • 아날로그 유저들을 배려한다.
  • html, css, js만으로 앱까지 만들 수 있다.
  • 앱에서 제공하는 푸시알림, 센서 등을 웹에서 사용할 수 있다.

PWA 세팅하기

터미널창을 열어 PWA가 셋팅된 리액트 프로젝트를 생성한다.

npx create-react-app 프로젝트명 –template cra-template-pwa

기존 프로젝트에 PWA를 만들 수 없다.

PWA가 세팅된 리액트 프로젝트를 생성하면 manifest.json 파일과 service-worker.js 파일이 생성된다.

manifest.json

manifest.json은 앱 설정 파일이다.

short_name 앱 이름
아이콘 아래에 표시할 이름
name 앱의 풀 네임
icons 앱 아이콘 설정
플랫폼마다 요구하는 아이콘 크기가 다름
start_url 앱 클릭시 처음 뜨는 페이지 설정
display 앱을 실행했을 때 브라우저 상단바를 제거할지 말지 설정
theme_color 테마 색사아 설정
background_color 배경색 설정

service-worker.js

service-worker.js 파일은 오프라인에서도 사이트를 열 수 있게 도와주는 파일이다. html, css, js 파일을 미리에 하드디스크에 저장해두고 사이트 접속시 별도로 다운받지 않고 하드디스크에서 가져와 사용할 수 있다. aset-manifiest.json 파일에 캐싱 목록이 기록되어 있다.

캐싱 : 미리 하드디스크에 저장해두는 것

index.js

빌드시에 service-worker.js 파일을 생성하기 위해서 index.js 파일에 설정을 변경한다.

//serviceWorkerRegistration.unregister();
serviceWorkerRegistration.register();

웹 페이지를 열었을 때 설치 버튼이 생성되게 만들어준다.

PWA 테스트하기

1.프로젝트를 빌드한다.

yarn build

2.빌드된 파일을 vs Code로 오픈한다.
3.Live Server를 사용하여 index.html 미리보기를 띄운다.
4.앱으로 설치할 수 있는 버튼을 확인한다.
5.맥북에서 앱 설치 테스트

PWA 설정 확인

개발자 도구의 Application 탭을 열어 PWA 설정 확인이 가능하며 Caches Storage에서 캐싱된 파일을 확인할 수 있다.

특정 파일을 캐싱 안 되게 하는 방법

node_modules/react-scripts/config/webpack.config.js 파일에서 InjectManifest 부분에 캐싱 하지 않을 파일 추가한다.

new WorkboxWebpackPlugin.InjectManifest({
          swSrc,
          dontCacheBustURLsMatching: /\.[0-9a-f]{8}\./,
          exclude: [/index\.html/, /\.map$/, /asset-manifest\.json$/, /LICENSE/],
          // Bump up the default maximum size (2mb) that's precached,
          // to make lazy-loading failure scenarios less likely.
          // See https://github.com/cra-template/pwa/issues/13#issuecomment-722667270
          maximumFileSizeToCacheInBytes: 5 * 1024 * 1024,
        }),

/index\.html/은 index.html 파일을 추가한 코드이다. 정규식 문법을 사용하여 .\. 으로 표현한다.

최신글