React PWA 만들기(1)

PWA란?

Register Store(?)

reference

PWA-builder

Getting started with Progressive Web Apps

PWA 예시

스타벅스 홈페이지가 PWA가 적용이 되어있다.

Starbucks 바로가기

위의 링크를 타고 접속하면 주소창 우측에 다운로드 버튼이 있는데, 클릭하면 PWA가 다운로드 된다. 다운로드 된 PWA를 실행시키면 브라우저에서 실행되는 것이 아니라 마치 APP을 실행시킨듯한 화면이 나타난다.

스타벅스-pwa

REACT에 PWA 적용하기

1.React Set up

npx create-react-app pwa

2.Install gh-pages and package.json setting

npm i gh-pages

//package.json
...
"homepage": "http://nostrss.github.io/pwa", //추가
...
"predeploy": "npm run build", //추가
"deploy": "cp build/index.html build/404.html && gh-pages -d build" //추가

3.Add service-worker

아래 2개의 파일을 root 위치에 작성하여 추가해줬다.

그리고 index.js파일에 service-worker를 등록해주는 코드를 추가해줬다.

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

// 아래 코드 추가
import * as serviceWorkerRegistration from './serviceWorkerRegistration';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

// 아래 코드 추가
serviceWorkerRegistration.register();

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

4.Deploy

npm run deploy

pwa download

starbucks pwa

5. PWA Analyze

Lighthouse

lighthouse

Pwa-builder

PWA-builder

pwa builder

패키지 다운로드

ETC

JavaScript

npx create-react-app my-app –template cra-template-pwa

TypeScript

npx create-react-app my-app –template cra-template-pwa-typescript