ViteにてPhaser3をTypeScriptで書くためのDocker環境のサンプル。
- 当リポジトリをクローンする。あるいはzipでダウンロードする。
- Visual Studio Codeを起動し、クローンした先のフォルダを開く。
- vscodeのメニューから「Reopen in container」を選択する。コンテナのビルドが始まるため、しばらく放置する。
cd docker_for_phaser3_vite_typescript
を実行して移動する。yarn install
を実行する。yarn dev
を実行して、ブラウザで「localhost:8000
」にアクセスする。Phaser3の画面が表示されれば成功。3000ポートじゃないので注意。8000ポートにしている理由は注意点を参照。
yarn dev
した際のポート番号はデフォルトポートから変更している。
export default defineConfig({
build: {
// 中略
},
server: {
port: 8000 // ここを追加
}
});
port
で指定しないとデフォルトとして3000ポートを使うのだが、たまたま別のコンテナで使ってたりするとポートが利用できない。わりと3000はよく使うので、最初から別のポートを使うようvite.config.ts
に追記している。現状はポート番号としてテキトーに8000
を指定しているが、このポート番号が衝突する場合は別の番号に変更してからDockerコンテナをビルドする。
デフォルト設定だと、Viteは4k以下の小さな画像を勝手にbase64でインライン化してしまう。すると、Phaser.jsから参照できなくなりリンク切れを起こしてしまう。これを阻止するため、vite.config.ts
を編集する。
export default defineConfig({
build: {
assetsInlineLimit: 0, // これ
// 中略
});
この問題の厄介なところは、開発時は見えていた画像がbuild
すると見えなくなる点。それまでは順調に開発できていても、build
する際にインライン化するので、そこで初めてリンク切れを起こして問題が表面化する。
当リポジトリをWindowsで利用しようとしたとき、ファイルdevcontainer.json
におけるフォルダ指定を書き換える必要があった。
"dockerComposeFile": [
"..\\docker-compose.yml", # ここの行
"docker-compose.yml"
],
「1つ上のフォルダにあるdocker-compose.yml
」を指している部分について、本来スラッシュ1つ/
だった部分をバックスラッシュ2つ\\
に変更してエスケープしている。macOSなど他のプラットフォームだと問題ないのだが、Windowsに関してのみこの部分がスラッシュ1つだとうまく解釈できずエラーになった。今はどうかわからないが・・・。
- geocine/phaser3-rollup-typescript
- digitsensitive/phaser3-typescript
- geckosio/phaser-on-nodejs
- DockerでTypeScript×Node.js×Expressの環境構築
- How to deploy Phaser 3 — Node.js — Express — Webpack Game to Heroku
- Vite Server is running but not working on localhost
- Phaser + TypeScript + Viteの環境構築
- Phaser.js + TypeScript + Viteでゲーム開発
- 【TypeScript/Phaser.js】記号だけで戦うタイピングゲーム作った