RequireJS + oCanvas 具有自调用函数

RequireJS + oCanvas with self-invoking functions

本文关键字:调用 函数 oCanvas RequireJS      更新时间:2023-09-26

>我在使用 oCanvas 时遇到麻烦 - 它不支持开箱即用的 AMD,所以在 RequireJS 中我定义了一个填充程序:配置.js

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

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

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

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

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

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

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

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

我现在

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

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

这对我有用。