自作ゲームをwebpack対応させてみた
TRANSCRIPT
![Page 1: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/1.jpg)
自作ゲームをwebpack 対応させてみた
2015/10/31 プログラミング生放送勉強会 第36回
Takeuchi Yuusuke
![Page 2: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/2.jpg)
自己紹介某SIで社内システム開発してます
最近、Reduxと格闘してます
趣味でall javascriptのゲームを作ってます
twitter @pegass85
github https://github.com/kaidouji85
![Page 3: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/3.jpg)
皆さんは素敵なjavascrit ライフを楽しんでいますか?
![Page 4: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/4.jpg)
僕は自作ゲームのjsモジュールが 増えてきて苦しんでます
何故なら
![Page 5: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/5.jpg)
javascriptのモジュール機能はクソだから
![Page 6: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/6.jpg)
どうクソなのかソースから別ファイルを読めない
必要なファイルをscriptタグで並べるしかない
しかもクラス、関数は全部グローバル
![Page 7: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/7.jpg)
それを解決するために webpackを使いました
![Page 8: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/8.jpg)
webpackとはjavascriptを1つにまとめるもの
ソース自体はcommon.js形式でまとめられる
↑これがwebpackを使う理由の9割と言っても過言ではない
![Page 9: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/9.jpg)
僕はcommon.jsが使えるんだ
こんなに嬉しい事はない
![Page 10: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/10.jpg)
common.jsのモジュール化機能require()で外部ファイルをロードできる
基本変数、関数、クラスはファイルの中に閉じている
関数、クラスを外出ししたい場合は、以下形式で
modules.export = 外出ししたい関数・クラス名
詳細はこちらに
https://webpack.github.io/docs/commonjs.html
![Page 11: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/11.jpg)
自作ゲームwebpack化の流れ
各ソースをcommon.js形式で書き直す
エントリポイントとなるファイルを対象に、webpackでビルドする
完成したファイルをhtmlの中で読み込む
![Page 12: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/12.jpg)
イメージはこんな感じ
![Page 13: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/13.jpg)
ビルドしたファイルですが
人間が読めたものではありません
そうなるとデバッグが大変じゃないですか
↑の誤解があって、中々webpack対応に踏み切れずにいました
![Page 14: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/14.jpg)
大丈夫、source mapがあるよ
![Page 15: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/15.jpg)
source mapとは
ビルドしたソースと、元となってソースの対応関係を付けるものです
ビルド前のコードを表示し、そこにブレークポイントを設定することもできます
source mapはwebpack標準でついてます
![Page 16: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/16.jpg)
.webpack配下にオリジナルソースがあります
![Page 17: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/17.jpg)
webpackを勉強するには公式サイトのチュートリアルが分かりやすいです
http://webpack.github.io/docs/tutorials/getting-started/
自分でも公式サイトのチュートリアルを
写経してみました
https://github.com/kaidouji85/study-webpack
![Page 18: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/18.jpg)
webpack対応したコード
webpack化した自作ゲームです
https://github.com/kaidouji85/gbraver
ゲーム自体はherokuで公開しています
http://gbraver.herokuapp.com
↑ブラウザの開発者コンソールで
source mapが確認できます
![Page 19: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/19.jpg)
webpackを使って快適なjsライフを送りましょう
![Page 20: 自作ゲームをWebpack対応させてみた](https://reader031.vdocuments.net/reader031/viewer/2022030305/58732adf1a28ab596c8b58a5/html5/thumbnails/20.jpg)
ご清聴ありがとうございました