我将browserify与node.js结合使用,以便在js文件中使用require()。
我在game.js中有这段代码:
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'snakeGame');
var menuState = require('./menuState.js');
var gameState = require('./gameState.js');
game.state.add('menuState', menuState);
game.state.add('gameState', gameState);
game.state.start('menuState');
如果我执行browserify game.js -o bundle.js
,这段代码将包含在一个立即调用的表达式中,并且所有必需的js文件或多或少地连接到此bundle.js
如何在所有必需的js文件中使用游戏变量?由于变量game
的bundle.js在IIFE范围内,我无法访问它。我怎么能把它放在这个范围之外呢?
答案 0 :(得分:1)
将其附加到window
对象。
window.game = game;
答案 1 :(得分:1)
如果您想在其他地方访问您的游戏对象,请将其导出:
module.exports = game;
如果这为您提供了循环依赖,那么您在应用程序的体系结构中有一些需要改进的地方(如果您的体系结构很好并且您具有循环依赖性,您仍然可以提出问题)
从那时起:
如果您想从 bundle.js 中捆绑的其他文件访问游戏对象,
只需var game = require('game');
如果您想访问在同一页面中加载的其他脚本