在Aurelia进口Phaser

时间:2017-12-02 22:50:22

标签: aurelia phaser-framework aurelia-framework

我想在使用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行。所以我不知道为什么我不能用它

任何帮助都会很棒。

1 个答案:

答案 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定义