Javascript Require.js和Imager.js未定义函数

Javascript Require.js和Imager.js未定义函数,javascript,requirejs,undefined,amd,Javascript,Requirejs,Undefined,Amd,我在将Imager.js库添加到require.js加载时遇到问题,如果没有require.js,脚本就可以完美地工作 Main.js define([ 'jquery', 'bootstrap', 'imager', 'video' ], function($) { 'use strict'; $('.dropdown-toggle').dropdown(); $('

我在将Imager.js库添加到require.js加载时遇到问题,如果没有require.js,脚本就可以完美地工作

Main.js

define([
        'jquery',
        'bootstrap',
        'imager',
        'video'
    ],
    function($) {
        'use strict';
        $('.dropdown-toggle').dropdown();
        $('#bvideo').magnificPopup({
            type: 'inline'
        });
        videojs('video-cdve', {
            'controls': true,
            'autoplay': false,
            'preload': 'auto',
            'width': 'auto',
            'height': 'auto'
        });
        new Imager({
            availableWidths: {
                320: '320x240',
                640: 'large',
                1024: 'large_x2',
            }
        });
    });
我得到了这个错误

未捕获参考错误:未定义成像仪

当我定义Imager时

define([
        'jquery',
        'bootstrap',
        'imager',
        'video'
    ],
    function($, Imager) {
        'use strict';
        $('.dropdown-toggle').dropdown();
        $('#bvideo').magnificPopup({
            type: 'inline'
        });
        videojs('video-cdve', {
            'controls': true,
            'autoplay': false,
            'preload': 'auto',
            'width': 'auto',
            'height': 'auto'
        });
        new Imager({
            availableWidths: {
                320: '320x240',
                640: 'large',
                1024: 'large_x2',
            }
        });
    });
现在我收到了这个错误

未捕获类型错误:未定义不是函数


发生了什么事?如何使用require正确添加此库???

您的参数绑定到模块的顺序与您在requirements中列出它们的顺序相同,因此在执行此操作时:

define([
        'jquery',
        'bootstrap',
        'imager',
        'video'
    ],
    function($, Imager) {
您正在将
Imager
绑定到
'bootstrap'
模块的值。更改顺序:

define([
        'jquery',
        'imager',
        'bootstrap',
        'video'
    ],
    function($, Imager) {

我还考虑了是否需要为Imager安装垫片,但我在他们的示例中看到,他们检测到AMD环境并调用
define

Imager
在传递参数时排名第二,但在
define
数组中导入它时排名第三