自分の作ったものを簡単に誰でも触れるよう、github pagesにホストしたい。。
ポートフォリオ作りのために、github pagesに作品を載せたい。。
というわけで、typescript + webpackを使ってgithub pagesにホストした流れをシェアできればと思います。

これであなたも簡単に作品をgithub pagesにホストできる!
環境
| 環境 | バージョン |
| macOS Sonoma | 14.4.1 |
| node | 20.0.0 |
| yarn | 1.22.19 |
GitHub - jiji-thecat/ts-webpack-gh-pages-template
Contribute to jiji-thecat/ts-webpack-gh-pages-template development by creating an account on GitHub.
すでに環境構築したパッケージをテンプレートリポジトリとして作成しました。
Use this template ボタンで、テンプレートとして新規リポジトリを作成することができます!
以下に、各設定ファイルの説明を書きます。
package.jsonの設定
ts-webpack-gh-pages-template/package.json at 0057e756543991687180299906c4be4cfc0db589 · jiji-thecat/ts-webpack-gh-pages-template
Contribute to jiji-thecat/ts-webpack-gh-pages-template development by creating an account on GitHub.
package.jsonには、アプリの基本情報を書いていきます。
| プロパティ | 説明 |
| name | パッケージの名前 |
| version | パッケージのバージョン |
| main | パッケージのエントリーファイル |
| license | パッケージのライセンス(自分勉強用なのでMIT) |
| private | npmにpublishしない場合はfalse |
| scripts | パッケージ内で使うコマンド |
| devDependencies | 開発用dependencies |
適宜更新しなくてはいけないのは、name, version, mainぐらいですかね。
typescriptの設定
ts-webpack-gh-pages-template/tsconfig.json at main · jiji-thecat/ts-webpack-gh-pages-template
Contribute to jiji-thecat/ts-webpack-gh-pages-template development by creating an account on GitHub.
typescriptの設定(コンパイルの設定であるcompilerOptionsなど)を書いていきます。
| プロパティ | 説明 |
| target | どのjs versionでコンパイルするか |
| lib | 使いたいtargetに欲しいライブラリがないときにライブラリを追加できる |
| module | コンパイルされるjsがどのようにモジュールを読み込むか。 バックエンならばcommonjs フロントエンドならばes2020 |
| outDir | コンパイルされるjsの出力用ディレクトリ |
| forceConsistentCasingInFileNames | 大文字小文字をしっかり区別するか 基本trueがいいらしい |
| strict | strict type checkingを有効にするか jsの書き方ルール |
| noImplicitAny | any typeはwarningを出すか |
| skipLibCheck | ライブラリの型チェックを飛ばすか 依存が多い場合に、コンパイル時間が減るらしいけど、必要かどうかは要検討 |
webpackの設定
ts-webpack-gh-pages-template/webpack.config.ts at main · jiji-thecat/ts-webpack-gh-pages-template
Contribute to jiji-thecat/ts-webpack-gh-pages-template development by creating an account on GitHub.
webpackの設定を書いていきます。
| プロパティ | 説明 |
| mode | production or developmentで選ぶことが可能 developmentにするとデバッグサーバの設定ができる |
| devtool | sourcemapを指定すると、デバッグ用のソースマップも出力してくれる |
| devServer | yarn run serveで走らせるデバッグサーバの設定バンドルの出力先を設定する |
| entry | エントリーファイルを追加 |
| output | バンドルの出力先 |
| module>rules | loaderの指定をする webpackはjsファイルをバンドル化するものなので、js以外のファイルはloaderを使う必要がある |
| resolve.extensions | import時に、拡張子無しでも解決(import)ができる設定。 (/) import * from "abc.ts"() import * from "abc"バンドル化したいファイルの拡張子を追加するべし。 js, ts, tsx |
| plugins | Pluginを設定。 MiniCssExtractPlugin: CSSをバンドルではなく、ファイルとして出力 HtmlWebpackPlugin: index.htmlをファイルとして出力してくれる。依存関係なども解決してくれる。 CopyPlugin: ファイルなどを出力先にコピペしてくれる。 |
github pagesの設定
gh-pagesパッケージをインストールし、github pagesにデプロイできるスクリプトを使って行います。
yarn run deployこれで、リモートリポジトリにgh-pagesブランチが作られて、そこに生成物がコミットされます。そして、github pagesにホスティングされます。
https://jiji-thecat.github.io/ts-webpack-gh-pages-template
まとめ
同じ環境で、プロジェクトを作ろうと思っている方はぜひ参考にしてもらえればと思います。

にほんブログ村に参加しております!よろしければクリックお願いします 🙂
にほんブログ村


コメント