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
。由于多种原因,这是错误的。
- 您实际上并没有对 gulp 文件中的任何地方的
PIXI
做任何事情。那你为什么需要它?
- PixiJs 是一个针对浏览器的 WebGL 渲染器。您的 gulp 构建在没有
window
对象的 node.js 中运行。这就是您收到该错误的原因。
- 您想将
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/'));
});
我最近切换到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
。由于多种原因,这是错误的。
- 您实际上并没有对 gulp 文件中的任何地方的
PIXI
做任何事情。那你为什么需要它? - PixiJs 是一个针对浏览器的 WebGL 渲染器。您的 gulp 构建在没有
window
对象的 node.js 中运行。这就是您收到该错误的原因。 - 您想将
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/'));
});