0

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

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

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

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

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

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

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

4

2 回答 2

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

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

于 2013-11-07T17:57:10.327 回答
0

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

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

这对我有用。

于 2013-11-09T09:18:16.920 回答