I am following a course to create a TS/JS-based game through webpack and Phaser. My GameScene Code is:
import { Map } from "../components/map";
import TilesGroup from "../components/tiles/tilesGroup";
import Player from "../components/player/player";
export default class MainScene extends Phaser.Scene{
player: Player
tileGroup: TilesGroup
cursors: Phaser.Input.Keyboard.CursorKeys
level: number
constructor(){
super({
key: "MainScene"
})
}
init(props: {level? : number}){
const {level = 0} = props
this.level= Map.calcCurrentLevel(level)
}
create(){
const map= new Map(this.level)
this.cameras.main.setBackgroundColor('#ade6ff')
this.cameras.main.fadeIn()
this.cameras.main.setBounds(map.size.x, map.size.y, map.size.width, map.size.height)
this.physics.world.setBounds(map.size.x, map.size.y, map.size.width, map.size.height)
this.input.addPointer(1)
this.cursors = this.input.keyboard.createCursorKeys()
this.tileGroup= new TilesGroup(this,map.info.filter((el: TilesConfig) => el.type==="tile"))
this.player= new Player(this,map.info.filter((el: TilesConfig) => el.type==="player")[0], map.size, this.level)
this.cameras.main.startFollow(this.player)
this.physics.add.collider (this.tileGroup, this.player)
}
update(time: number, delta: number): void{
this.player.update(this.cursors)
}
}
I get the following webpack error when i try to run the command npm run build:
[webpack-cli] Failed to load 'C:\Users\vivek\Learning\demo\platformer+game\platformer game\webpack\webpack.dev.js' config
[webpack-cli] Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
- options[0] has an unknown property 'to'. These properties are valid:
object { patterns, options? }
- options[1] has an unknown property 'to'. These properties are valid:
object { patterns, options? }
- options[2] has an unknown property 'to'. These properties are valid:
object { patterns, options? }
I was expecting the webpack to be ready and run my game through the command npm start
The relevant portion of my webpack plugin code is as follows:
plugins: [
new HtmlWebpackPlugin({ template: 'src/index.html' }),
new CopyWebpackPlugin([
{ from: 'src/assets', to: 'assets' },
{ from: 'src/pwa', to: '' },
{ from: 'src/favicon.ico', to: '' }
]),
new InjectManifest({
swSrc: path.resolve(__dirname, '../src/pwa/sw.js'),
exclude: [/\/spine\/raw\/*/]
})
]
When i try to resolve the issue with this probable solution:
plugins: [
...
new CopyWebpackPlugin({
patterns:[
{ from: 'src/assets', to: 'assets' },
{ from: 'src/pwa', to: '' },
{ from: 'src/favicon.ico', to: '' }
]
}),
]
...
I am then getting the following errors when i try to execute the command npm run build in terminal:
PS C:\Users\vivek\Learning\demo\platformer+game\platformer game> npm run build
phaser3-typescript-platformer-example@3.16.2 build webpack --config webpack/webpack.prod.js
[webpack-cli] Failed to load 'C:\Users\vivek\Learning\demo\platformer+game\platformer game\webpack\webpack.prod.js config [webpack-cli] Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
options[0] has an unknown property 'to'. These properties are valid: object { patterns, options? }
options[1] has an unknown property 'to'. These properties are valid: object { patterns, options? }
options[2] has an unknown property 'to'. These properties are valid: object { patterns, options? }