created: 2022-06-05T04:14:39.000Z

雑create-react-app のデプロイについて

init

こんな感じで開発を始める

npm install -g create-react-app
npx create-react-app {{ アプリ名 }} --typescript
yarn start

build

ビルドコマンドはデフォルトで用意されている

yarn build

これを実行すると ./build 配下にhtmlなどビルド結果が生成される

deploy

AWSを使ってるとしてs3にあげる例だとこんな感じ

aws s3 sync --delete ./build s3://static-bucket-name/thirdapp

パスの調整

create-react-app の yarn build はデフォルトだとパスをルート / からの絶対パスで生成する

<link rel="apple-touch-icon" href="/logo192.png"/>

s3://static-bucket-name/thirdapp/ にアプリを置きたい場合はこれを /thirdapp/ 配下にする必要があるが、そのパスの変更は package.json#homepage で設定できる

こんな感じ

$ cat package.json
{
  "name": "thirdapp",
  "version": "0.1.0",
  "private": true,
  "homepage": "/thirdapp/",
  "dependencies": {
  ...

その他

ちなみに GCS の公開バケットにおく場合などは、さらにバケット名のパスが追加されるので、バケット名もパスに含める必要がある。

  // どちらでも良い
  "homepage": "https://storage.googleapis.com/mybucket-name/thirdapp/",
  "homepage": "/mybucket-name/thirdapp/",
詳説 データベース ―ストレージエンジンと分散データシステムの仕組み
[ad] 詳説 データベース ―ストレージエンジンと分散データシステムの仕組み
Alex Petrov, 小林 隆浩 (単行本(ソフトカバー))