Gulp and Pixi.js - ReferenceError: window is not defined

Gulp and Pixi.js - ReferenceError: window is not defined

我最近切换到gulp,想试试pixi.js,我一直在使用pixi的cdn,但现在我想要pixi-timer来延迟某些功能。

所以我想,为什么不开始将所有这些与 gulp 捆绑在一起呢?

然而我运行进入了以下错误:

ReferenceError: window is not defined

我认为 pixi.js 的最新版本支持 gulp 甚至 browserify,但是当我尝试要求 pixi.js.

时它失败了

有什么指点吗?

我的 gulp 文件:

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>

您需要删除此行:

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

此处您在 gulp 构建期间需要 pixi.js。由于多种原因,这是错误的。

  1. 您实际上并没有对 gulp 文件中的任何地方的 PIXI 做任何事情。那你为什么需要它?
  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/'));
});