RequireJS + oCanvas具有自动调用功能

时间:2013-11-07 17:53:24

标签: javascript requirejs amd

我使用oCanvas时遇到麻烦 - 它不支持AMD开箱即用,所以在RequireJS中我定义了一个垫片: 的 configuration.js

require(
    function () {
        requirejs.config({
            shim: {
                'lib/ocanvas': {
                    exports: ['oCanvas']
                }
            }
        });
    }
);

我加载与shim相关的配置的方式(我认为将其添加到require到入口点文件就足够了):

require(['configuration','main'],
    function (configuration, main) {
        main.startUniverse();
    }
);

问题是我无法在JS文件中获取oCanvas对象:

define(['lib/ocanvas'],
    function (oCanvas) {}

这里似乎未定义。在oCanvas sources中,我看到有2个自调用函数,它们将oCanvas对象置于全局状态:window.oCanvas = oCanvas。也许这对RequireJS不起作用?

2 个答案:

答案 0 :(得分:1)

require(
    function () {
        requirejs.config({
            shim: {
                'lib/ocanvas': {
                    exports: 'oCanvas'
                }
            }
        });
    }
);

尝试将其作为字符串而不是数组传递?

答案 1 :(得分:0)

而不是requirejs.config我现在使用require.config并在那里传递一个对象:

require.config({
    shim: {
        'lib/ocanvas': {
            exports: 'oCanvas'
        }
    }
});

这对我有用。