我想在使用typescript的aurelia CLI应用程序中使用Phaser, npm install运行正常,我已经修改了aurelia.json,如下所示
...
{
"name": "phaser",
"path": "../node_modules/phaser/build",
"main": "phaser"
},
....
当我尝试在ts文件中使用phaser时,它表示phaser未定义。事实上,看着cli鞋垫,似乎并没有跟踪移相器。如果我将依赖项名称更改为" phaserjs"之类的内容,它会开始跟踪它,但当然我无法使用它,因为导入需要另一个名称。
import {autoinject} from 'aurelia-framework';
import * as phaser from "phaser";
@autoinject
export class Login {
attached():void{
console.log("this print undefined", Phaser);
}
}
我尝试使用import *作为phaser来自" phaser",导入{Game}来自" phaser"似乎什么都没有用。 但是,查看vendor-bundle.js,找到了phaser.js行。所以我不知道为什么我不能用它
任何帮助都会很棒。
答案 0 :(得分:0)
对于之后有同样问题的人: Phaser 2x不是模块化的。为了能够使用它,您需要导出它需要的几个依赖项。 首先,使用phaser-ce(社区版),它支持webpack。 其次,导出其依赖项:
在使用requirejs的aurelia中,修改aurelia.json供应商依赖项。
{
"name": "pixi",
"path": "../node_modules/phaser-ce/build/custom",
"main": "pixi",
"exports": ["PIXI"]
},
{
"name": "p2",
"path": "../node_modules/phaser-ce/build/custom",
"main": "p2",
"exports": ["p2"]
},
{
"name": "phaser-ce",
"path": "../node_modules/phaser-ce/build/custom",
"main": "phaser-split",
"exports": ["Phaser"]
},
现在您可以毫无问题地使用移相器
import * as Phaser from "phaser-ce";
Phaser-CE还在其模块文件夹“typings”
中包含typescripts定义