Webpack 和 Phaser 3 配置
Webpack and Phaser 3 configuration
我正在尝试使用书籍教程中的 Phaser 3 创建游戏,我决定包括 webpack 以供学习之用。我正处于游戏创作的初始阶段,但是当我 运行 npm start
脚本时,我遇到了很多错误,我一一修复了这些错误。我没有更多的错误,但是当 运行 的 scrip 我得到一个空白页面并且在我的 dist 文件夹中没有创建任何内容。这是我的 webpack.config.js 文件内容:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const webpack = require('webpack');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
// https://webpack.js.org/concepts/entry-points/#multi-page-application
entry: ['babel-polyfill', './src/index.js'],
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
// https://webpack.js.org/configuration/dev-server/
devServer: {
contentBase: './dist',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
include: path.resolve(__dirname, 'src/'),
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
},
},
},
{
test: /\.css$/i,
use: [
'style-loader',
'css-loader',
],
},
{
test: /\.(png|svg|jpg|gif)$/,
use: [
'file-loader',
],
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: [
'file-loader',
],
},
],
},
// https://webpack.js.org/concepts/plugins/
plugins: [
new CleanWebpackPlugin(),
new CopyWebpackPlugin({
patterns: [
{
from: path.resolve(__dirname, 'src/assets', '**', '*'),
to: path.resolve(__dirname, 'dist'),
},
],
}),
new HtmlWebpackPlugin({
filename: 'index.html',
template: './src/index.html',
}),
new webpack.DefinePlugin({
'typeof CANVAS_RENDERER': JSON.stringify(true),
'typeof WEBGL_RENDERER': JSON.stringify(true),
}),
],
};
其余的文件都在我的repo里,有空可以去看看。提前感谢您的帮助。
- 在 CopyWebpackPlugin 中更改行
来自 from: path.resolve(__dirname, 'src/assets', '**', '*'),
到from: 'src/assets',
- 然后
npm run build
我通过创建基础和生产 webpack 文件来提高代码可读性并在每个场景中导入游戏所需的每个图像来解决问题。最具挑战性的部分是 prod.js 文件,因为我能够使用 npm start 渲染图像,但不能使用 npm 运行 build.
我正在尝试使用书籍教程中的 Phaser 3 创建游戏,我决定包括 webpack 以供学习之用。我正处于游戏创作的初始阶段,但是当我 运行 npm start
脚本时,我遇到了很多错误,我一一修复了这些错误。我没有更多的错误,但是当 运行 的 scrip 我得到一个空白页面并且在我的 dist 文件夹中没有创建任何内容。这是我的 webpack.config.js 文件内容:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const webpack = require('webpack');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
// https://webpack.js.org/concepts/entry-points/#multi-page-application
entry: ['babel-polyfill', './src/index.js'],
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
// https://webpack.js.org/configuration/dev-server/
devServer: {
contentBase: './dist',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
include: path.resolve(__dirname, 'src/'),
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
},
},
},
{
test: /\.css$/i,
use: [
'style-loader',
'css-loader',
],
},
{
test: /\.(png|svg|jpg|gif)$/,
use: [
'file-loader',
],
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: [
'file-loader',
],
},
],
},
// https://webpack.js.org/concepts/plugins/
plugins: [
new CleanWebpackPlugin(),
new CopyWebpackPlugin({
patterns: [
{
from: path.resolve(__dirname, 'src/assets', '**', '*'),
to: path.resolve(__dirname, 'dist'),
},
],
}),
new HtmlWebpackPlugin({
filename: 'index.html',
template: './src/index.html',
}),
new webpack.DefinePlugin({
'typeof CANVAS_RENDERER': JSON.stringify(true),
'typeof WEBGL_RENDERER': JSON.stringify(true),
}),
],
};
其余的文件都在我的repo里,有空可以去看看。提前感谢您的帮助。
- 在 CopyWebpackPlugin 中更改行
来自 from: path.resolve(__dirname, 'src/assets', '**', '*'),
到from: 'src/assets',
- 然后
npm run build
我通过创建基础和生产 webpack 文件来提高代码可读性并在每个场景中导入游戏所需的每个图像来解决问题。最具挑战性的部分是 prod.js 文件,因为我能够使用 npm start 渲染图像,但不能使用 npm 运行 build.