Code Monkey home page Code Monkey logo

docker_for_phaser3_vite_typescript's Introduction

docker_for_phaser3_vite_typescript

概要

ViteにてPhaser3をTypeScriptで書くためのDocker環境のサンプル。

利用手順

  1. 当リポジトリをクローンする。あるいはzipでダウンロードする。
  2. Visual Studio Codeを起動し、クローンした先のフォルダを開く。
  3. vscodeのメニューから「Reopen in container」を選択する。コンテナのビルドが始まるため、しばらく放置する。
  4. cd docker_for_phaser3_vite_typescriptを実行して移動する。
  5. yarn installを実行する。
  6. yarn devを実行して、ブラウザで「localhost:8000」にアクセスする。Phaser3の画面が表示されれば成功。3000ポートじゃないので注意。8000ポートにしている理由は注意点を参照。

注意点

Viteのポート指定

yarn devした際のポート番号はデフォルトポートから変更している。

export default defineConfig({
  build: {
   //  中略
  },
  server: {
    port: 8000  // ここを追加
  }
});

portで指定しないとデフォルトとして3000ポートを使うのだが、たまたま別のコンテナで使ってたりするとポートが利用できない。わりと3000はよく使うので、最初から別のポートを使うようvite.config.tsに追記している。現状はポート番号としてテキトーに8000を指定しているが、このポート番号が衝突する場合は別の番号に変更してからDockerコンテナをビルドする。

Viteのインライン化阻止

デフォルト設定だと、Viteは4k以下の小さな画像を勝手にbase64でインライン化してしまう。すると、Phaser.jsから参照できなくなりリンク切れを起こしてしまう。これを阻止するため、vite.config.tsを編集する。

export default defineConfig({
  build: {
    assetsInlineLimit: 0,  // これ
    //  中略
});

この問題の厄介なところは、開発時は見えていた画像がbuildすると見えなくなる点。それまでは順調に開発できていても、buildする際にインライン化するので、そこで初めてリンク切れを起こして問題が表面化する。

devcontainer.jsonの書き換え

当リポジトリをWindowsで利用しようとしたとき、ファイルdevcontainer.jsonにおけるフォルダ指定を書き換える必要があった。

"dockerComposeFile": [
   "..\\docker-compose.yml", # ここの行
   "docker-compose.yml"
],

「1つ上のフォルダにあるdocker-compose.yml」を指している部分について、本来スラッシュ1つ/だった部分をバックスラッシュ2つ\\に変更してエスケープしている。macOSなど他のプラットフォームだと問題ないのだが、Windowsに関してのみこの部分がスラッシュ1つだとうまく解釈できずエラーになった。今はどうかわからないが・・・。

参考

  1. geocine/phaser3-rollup-typescript
  2. digitsensitive/phaser3-typescript
  3. geckosio/phaser-on-nodejs
  4. DockerでTypeScript×Node.js×Expressの環境構築
  5. How to deploy Phaser 3 — Node.js — Express — Webpack Game to Heroku
  6. Vite Server is running but not working on localhost
  7. Phaser + TypeScript + Viteの環境構築
  8. Phaser.js + TypeScript + Viteでゲーム開発
  9. 【TypeScript/Phaser.js】記号だけで戦うタイピングゲーム作った

docker_for_phaser3_vite_typescript's People

Contributors

ysko909 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.