2017-12-02 171 views
0

我想用打字稿用在奧裏利亞CLI應用Phaser, NPM正確安裝運行,並且我已經修改aurelia.json如下導入移相器奧裏利亞

... 
{ 
    "name": "phaser", 
    "path": "../node_modules/phaser/build", 
    "main": "phaser" 
}, 
.... 

當我嘗試使用移相器一個ts文件,它表示移相器是未定義的。而事實上,看起來cli鞋墊,似乎並沒有跟蹤移相器。如果我將依賴項名稱更改爲「phaserjs」,它會開始跟蹤它,但當然由於導入需要其他名稱,因此我無法使用它。

import {autoinject} from 'aurelia-framework'; 
import * as phaser from "phaser"; 

@autoinject 
export class Login { 
    attached():void{ 
     console.log("this print undefined", Phaser); 
    } 
} 

我一直在使用進口*爲從「相位」「相位」,進口{}遊戲並沒有什麼移相器似乎工作嘗試。 但是,查看vendor-bundle.js,找到phaser.js行。所以我不知道爲什麼我不能用它

任何幫助將是巨大的。

回答

0

對於有人用同樣的問題後: 移相2X沒有設計成模塊化,。爲了能夠使用它,你需要導出它需要的一些依賴項。 首先,使用phaser-ce(Community-edition),它支持webpack。 二是出口它的依賴:

在奧裏利亞使用requirejs,修改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"; 

移相-CE還包括裏面的模塊文件夾 「分型」

打字稿定義