我有这样的JavaScript文件:
shape.js
var shape = (function() {
var shape = {};
Object.defineProperty(shape, 'init', {
value: function(x, y) {
this.x = x;
this.y = y;
return this;
}
});
return shape;
}());
circle.js
var circle = (function(parent) {
var circle = Object.create(parent);
Object.defineProperty(circle, 'init', {
value: function(x, y, r) {
parent.init.call(this, x, y);
this.r = r;
return this;
}
});
return circle;
}(shape));
rectangle.js
var rectangle = (function(parent) {
var rectangle = Object.create(parent);
Object.defineProperty(rectangle, 'init', {
value: function(x, y, width, height) {
parent.init.call(this, x, y);
this.width = width;
this.height = height;
return this;
}
});
return rectangle;
}(shape));
矩形与 - text.js
var rectangleWithText = (function(parent) {
var rectangleWithText = Object.create(parent);
Object.defineProperty(rectangleWithText, 'init', {
value: function(x, y, width, height, text) {
parent.init.call(this, x, y, width, height);
this.text = text;
return this;
}
});
return rectangleWithText;
}(rectangle));
我还有其他JavaScript文件,如constants.js,customErrors.js,validator.js,player.js,renderer.js,game.js,initializator.js,main.js,编码风格相同。
现在我想用a simple JavaScript library for performing 2D collision detection进行一些碰撞检测,但我必须在某处输入
var SAT = require('sat');
我在全球范围内输入了这个。 (我知道我用我的形状,圆形,矩形等污染了全球范围,但我还是一个大三学生,这是我迄今为止最好的解决方案:)
问题是我必须使用browserify或其他提供'require'的类似框架,我还不熟悉'require'以及我必须如何组织我的代码。
我安装了browserify全球版,我也在我的项目中安装了uniq以及坐着(我想要的确实)
现在我相信我必须输入这样的命令:
browserify constants.js game-errors.js validator.js shape.js circle.js triangle.js rectangle.js rectangle-with-text.js player.js renderer.js game.js initializator.js main.js - o bundle.js
但是当我在我的html文件中引用bundle.js并运行浏览器时,我在控制台中得到了这个错误:
Uncaught ReferenceError: shape is not defined
指向我尝试构建圆圈的代码,这意味着我的IIFE圆圈无法看到形状。
那么我应该怎么做才能使browserify正确构建我的包呢?