Webpack+Phaserで作ろうと思って、
https://github.com/lean/phaser-es6-webpack
を参考に、とりあえず、できる限りの最小で書いていますので、
上記URLにあるようなBrowserSyncの設定とかは入っていませんので、
適宜設定していただければと思います。
ファイル構成は、
dist(書き出し用)、src(ソース用)のファイルだけ、作ってもらえればと思います。
package.json
{
"devDependencies": {
"babel-cli": "^6.23.0",
"babel-core": "^6.23.1",
"babel-loader": "^6.3.2",
"babel-preset-es2015": "^6.22.0",
"expose-loader": "^0.7.3",
"phaser-ce": "^2.7.3",
"webpack": "^2.2.1"
}
}
webpack.config.js
//pathに関するいろいろができるものです。
var path = require('path');
//ローカルインストールじゃないと動かない気がする
//グローバルでも動かす方法教えてください
var webpack = require('webpack');
//ここらへんは、Phaser-ceのnpmのページに書いてるのと、ほぼ一緒。
//ただ、
//path.join(__dirname, '/node_modules/phaser/');
//こうなってる。phaser-ceでしょっていう
var phaserModule = path.join(__dirname, '/node_modules/phaser-ce/');
var phaser = path.join(phaserModule, 'build/custom/phaser-split.js');
var pixi = path.join(phaserModule, 'build/custom/pixi.js');
var p2 = path.join(phaserModule, 'build/custom/p2.js');
module.exports = {
entry: {
app: [
'babel-polyfill',
path.resolve(__dirname, 'src/main.js')
],
vendor: ['pixi', 'p2', 'phaser']
},
module: {
loaders:[
{ test:/\.js$/,
loader: 'babel-loader',
include: path.join(__dirname, 'src') ,
//.babelrcに書く場合は不要
query:{presets: ['es2015']}
},
{ test: /pixi\.js/,
loader: 'expose-loader?PIXI'
},
{ test: /phaser-split\.js$/, loader: 'expose-loader?Phaser' },
{ test: /p2\.js/, loader: 'expose-loader?p2' }
]
},
output:{
filename: './dist/[name].js'
},
//これは入れないと動かなかった。よくわかってない
plugins: [
new webpack.optimize.CommonsChunkPlugin({name:"vendor", filenam:"vendor.bundle.js"})
],
//ここもnpmのページに書いてあるとおり
resolve: {
alias: {
'phaser': phaser,
'pixi': pixi,
'p2': p2,
}
}
}