未定义RequireJS noUiSlider

未定义RequireJS noUiSlider,requirejs,nouislider,Requirejs,Nouislider,我对你有意见 使用requireJS、config.js和build.js paths: { nouislider: '../core/lib/nouislider/nouislider', }, shim: { nouislider: { deps: ['jquery'], exports: '$' }, }, 脚本: require(['jquery', 'nouislider'], function ($) { "use st

我对你有意见

使用requireJS、config.js和build.js

 paths: {
    nouislider: '../core/lib/nouislider/nouislider',
  },
  shim: {
    nouislider: {
      deps: ['jquery'],
      exports: '$'
    },
  },
脚本:

require(['jquery', 'nouislider'], function ($) {
"use strict";
  $(function () {
    var range = document.getElementById('range');
    range.style.height = '400px';
    range.style.margin = '0 auto 30px';
    noUiSlider.create(range, {
      connect: true,
      behaviour: 'tap',
      start: [ 500, 4000 ],
      range: {
        // Starting at 500, step the value by 500,
        // until 4000 is reached. From there, step by 1000.
        'min': [ 0 ],
        '10%': [ 500, 500 ],
        '50%': [ 4000, 1000 ],
        'max': [ 10000 ]
      }
    });
  });
});
在我的网站上,我有一个错误ReferenceError:noUiSlider没有定义


有人有同样的问题吗?

您需要这样要求:

require(['jquery', 'nouislider'], function ($, noUiSlider) {
我刚刚将最后一个参数添加到回调中。如果您查看其源代码,您将看到它检测是否存在AMD加载程序(检查
define
是否是一个函数,并在其上具有属性
AMD
),如果是,它将调用
define
。因此,您必须像上面所示那样使用模块的值,而不是依赖全局空间中存在的
noUiSlider


顺便说一下,为调用
define
的代码设置
shim
是完全无用的<代码>垫片仅适用于不使用
定义
的代码。因此,您应该卸下问题中显示的
垫片。

您需要这样做:

require(['jquery', 'nouislider'], function ($, noUiSlider) {
我刚刚将最后一个参数添加到回调中。如果您查看其源代码,您将看到它检测是否存在AMD加载程序(检查
define
是否是一个函数,并在其上具有属性
AMD
),如果是,它将调用
define
。因此,您必须像上面所示那样使用模块的值,而不是依赖全局空间中存在的
noUiSlider

顺便说一下,为调用
define
的代码设置
shim
是完全无用的<代码>垫片
仅适用于不使用
定义
的代码。因此,您应该卸下问题中显示的
垫片