【簡単】TypeScript + webpack で GitHub pages にホストする

プログラミング

※当ブログでは商品・サービスのリンク先にプロモーションを含みます。ご了承ください。

自分の作ったものを簡単に誰でも触れるよう、github pagesにホストしたい。。

ポートフォリオ作りのために、github pagesに作品を載せたい。。

というわけで、typescript + webpackを使ってgithub pagesにホストした流れをシェアできればと思います。

これであなたも簡単に作品をgithub pagesにホストできる!

環境

環境バージョン
macOS Sonoma14.4.1
node 20.0.0
yarn1.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)
privatenpmに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がいいらしい
strictstrict type checkingを有効にするか
jsの書き方ルール
noImplicitAnyany 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の設定を書いていきます。

プロパティ説明
modeproduction or developmentで選ぶことが可能
developmentにするとデバッグサーバの設定ができる
devtoolsourcemapを指定すると、デバッグ用のソースマップも出力してくれる
devServeryarn run serveで走らせるデバッグサーバの設定
バンドルの出力先を設定する
entryエントリーファイルを追加
outputバンドルの出力先
module>rulesloaderの指定をする
webpackはjsファイルをバンドル化するものなので、js以外のファイルはloaderを使う必要がある
resolve.extensionsimport時に、拡張子無しでも解決(import)ができる設定。
(/) import * from "abc.ts"
() import * from "abc"

バンドル化したいファイルの拡張子を追加するべし。js, ts, tsx
pluginsPluginを設定。
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

まとめ

同じ環境で、プロジェクトを作ろうと思っている方はぜひ参考にしてもらえればと思います。

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

にほんブログ村 IT技術ブログへ
にほんブログ村

コメント

タイトルとURLをコピーしました