可以将MooTools类定义为Browserify模块吗?

时间:2014-05-30 18:23:22

标签: javascript mootools browserify

如果可能的话,我试图将browserify和mootools结合起来。我在页面的头部加载了mootools然后我尝试以一种方式定义一个类,Browserify可以在这个名为parallax.js的文件中解析:

module.exports = new Class({

    Implements: [Options, Events],

    options: {
        container: window
    },

    initialize: function(options) {
        console.log('test');
    }

});

然后在另一个名为`app.js'的文件中这是应用程序的主要js文件,我需要像这样的parallax.js:

var parallax = require('./parallax.js');
parallax.initialize();

但是对initalize的调用给出了一个错误:

Uncaught TypeError: undefined is not a function 

我怀疑我认为这一切都错了,但我不确定如何利用MooTools以及Browserify允许的模块化。也许MooTools和Browserify只是不能很好地一起玩?

1 个答案:

答案 0 :(得分:4)

我在类似的环境中工作,只是使用wrapup代替浏览器,这非常相似, 您的代码无效,因为您忘记使用new关键字。

而不是

var parallax = require('./parallax.js'); 
parallax.initialize();

你应该做的

var Parallax = require('./parallax'),
parallax = new Parallax()

当MooTools导出全局对象所以你应该能够要求它时,我通常只是在调用我的主cjs文件之前在页面中包含MooTools。