使用 requirejs amd shim 加载 soundmanager2,记录未定义

Loading soundmanager2 with requirejs amd shim, logs undefined

所以这是我的 main.js 文件(为清楚起见删除了我所有其他脚本):

require.config({
    paths: {
        'soundmanager2': '../libs/soundmanager2/soundmanager2',
    },
    shim: {
        'soundmanager2': {
            'exports': 'soundManager'
        }
    }
});

然后我像这样加载库:

define(['jquery', 'underscore', 'backbone', 'utilities/events', 'utilities/helpers', 'soundmanager2'],

    function($, _, Backbone, events, h, soundManager){

        var TrackModel = Backbone.Model.extend({

            initialize: function() {

                console.log(soundManager);
            }
        });

        return TrackModel;
    }
);

正在下载脚本 - 但是当我登录 soundManager 时,我得到未定义,没有其他错误。

有什么想法吗?恐怕我遗漏了一些明显的东西..

这是 soundmanager2 版本的问题 - 它内置了 AMD,但由于某种原因我无法将其导出。我恢复到早期版本,使用了垫片,然后修复了它!

我在源代码注释中找到了requirejs的用法,但是文档没有描述。这是例子。

define(['soundManager2'], function(SoundManager) {
    var sound = SoundManager.getInstance();
    sound.setup({
      useHTML5Audio: true,
      idPrefix: '',
      onready: function() {},
      ontimeout: function() {}
    });
    sound.beginDelayedInit();
})