如何使用browserify处理原型链接?

时间:2015-07-25 14:20:52

标签: javascript node.js require browserify

我有这样的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正确构建我的包呢?

0 个答案:

没有答案