2016-09-19 71 views
0

我最近已經切換到吞噬,並認爲我會嘗試pixi.js,我一直在使用pixn的cdn,但現在我想要pixi-timer延遲某些功能。Gulp和Pixi.js - ReferenceError:窗口沒有定義

所以我想,爲什麼不開始把它與吞噬一起捆綁?

但是我遇到了以下錯誤:

ReferenceError: window is not defined

我認爲pixi.js的最新版本支持一飲而盡,甚至browserify,然而當我試着要求pixi.js.失敗

有什麼建議嗎?

我一飲而盡文件:

var gulp = require('gulp'); 
var concat = require('gulp-concat'); 
var PIXI = require('pixi.js'); 
// var timer = require('pixi-timer'); 
var browserify = require('gulp-browserify'); 


gulp.task('game', function(){ 
    return gulp.src('interface/js/gamelogic/**/*.js') 
    .pipe(concat('game.js')) 
    .pipe(gulp.dest('Vamp.Website/Resources/')); 
}); 

gulp.task('default', function(){ 
    gulp.watch('interface/js/gamelogic/**/*.js', ['game']); 
}); 

完整的錯誤日誌:

D:\Stuff\Vamp\vamp\Vamp>gulp D:\Stuff\Vamp\vamp\Vamp\node_modules\pixi.js\src\polyfill\index.js:5 if(!window.ArrayBuffer){ ^

ReferenceError: window is not defined at Object. (D:\Stuff\Vamp\vamp\Vamp\node_modules\pixi.js\src\polyfill\index.js:5:5) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Module.require (module.js:367:17) at require (internal/module.js:16:19) at Object. (D:\Stuff\Vamp\vamp\Vamp\node_modules\pixi.js\src\index.js:2:1) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10)

D:\Stuff\Vamp\vamp\Vamp>

回答

3

您需要刪除此行:你一飲而盡構建期間

var PIXI = require('pixi.js'); 

這裏你需要pixi.js。這有幾個原因是錯誤的。

  1. 你實際上並沒有在PIXI的任何地方做任何事情在你的gulp文件。那麼你爲什麼需要它?
  2. PixiJs是一款面向瀏覽器的WebGL渲染器。你的gulp版本運行在沒有window對象的node.js中。這就是你得到這個錯誤的原因。
  3. 您想將pixi.js和其他文件合併爲一個game.js文件。您無需爲此需要pixi.js。你只需要你pixi.js安裝的路徑傳遞到gulp.src()這樣的:
gulp.task('game', function(){ 
    return gulp.src([ 
    'node_modules/pixi.js/bin/pixi.js', 
    'interface/js/gamelogic/**/*.js' 
    ]) 
    .pipe(concat('game.js')) 
    .pipe(gulp.dest('Vamp.Website/Resources/')); 
}); 
+0

這是有道理的,你猜我還有很多東西需要學習:d感謝您抽出時間詳細解釋 – user1725266