2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

react-router-domを使ったViteアプリをGitHub Pagesで公開する方法【備忘録】

Posted at

概要

先日、react-router-domを使用したViteアプリケーションをGitHub Pagesで公開した際に、想定していたアプリケーションの画面ではなく、ただ真っ白な画面が表示されてしまいました。
次回以降、同じ現象で困らないようにするため、この現象に対する対処法をまとめます。

方法

vite.config.tsファイルとmain.tsxファイルにbaseの設定を追記します。
<リポジトリ名>の部分は、GitHubのリポジトリ名で置き換えてください。

vite.config.ts
import path from "path"
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
+  base: '/<リポジトリ名>/',
})

main.tsx
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.tsx'
import './index.css'
import { BrowserRouter } from "react-router-dom";


ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
    <BrowserRouter 
+    basename={import.meta.env.DEV ? "/" : "<リポジトリ名>"}
    >
      <App />
    </BrowserRouter>
  </React.StrictMode>
)

参考:Viteによって作成したReactアプリをGithub Pagesを使ってデプロイ!

package.jsonのbuildコマンドを書き換え、rebuildのコマンドを追記します。

package.json
{

// 省略

"scripts": {
    "dev": "vite",
-    "build": "tsc -b && vite build",
+    "build": "tsc -b && vite build && cp -r dist docs",
    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview",
+    "rebuild": "vite build && rm -R docs && cp -r dist docs"
  },
  
// 省略

}

参考:ReactをGitHub Pagesにデプロイしよう〜Vite編〜

ターミナルでnpm run build(2回目以降のビルド時はnpm run rebuild)を実行してビルドしたのち、GitHubへアップロードします。

リポジトリページでSettingsタブを選択し、サイドメニューのPagesを選択します。Build and deploymentのbranchの項目を「main」ブランチの「/docs」に設定して「Save」ボタンを押下します。
GitHub_Pages_Settings.png

Actionsタブでワークフローに✅がついたら、ワークフロー詳細画面の「deploy」カードに表示されているURLにアクセスし、想定通りのページが表示されているかどうかを確認します。
GitHub_Pages_Actions.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?