7

我正在尝试使用 Intern 测试 Require.js 项目。我在测试中遇到错误,在加载 jQuery 插件时未定义 jQuery。我的加载器配置如下所示:

loader: {
    // Aliased paths
  paths: {
    'dt': 'dt',
    'jq': 'jquery',

    'jquery': 'jquery/jquery-1.8.3',
    'jquerymx': 'jquery/jquerymx-3.2.custom',
    'jquery.ui': 'jquery/jquery-ui-1.9.2.custom.min',
    'jquery.ui.widget': 'jquery/jquery.ui.widget',
    'jquery.jscrollpane': 'jquery/jquery.jscrollpane.min.edit',
    'jquery.colorbox': 'jquery/jquery.colorbox-min',
    'jquery.selectbox': 'jquery/jquery.selectbox-0.2.min.edit',
    'jquery.base64': 'jquery/jquery.base64',
    'jquery.cookie': 'jquery/jquery.cookie',
    'jquery.urldecoder': 'jquery/jquery.urldecoder.min',
    'jquery.fileupload': 'jquery/jquery.fileupload',
    'jquery.history': 'history/scripts/compressed/history.adapter.jquery',

    'openajax': 'openajax_2.0.7/OpenAjaxUnmanagedHub',
    'zeroclipboard': 'zeroclipboard/ZeroClipboard'
  },

  // Plugin mappings
  map: {
    '*': {
      'css': 'requirejs/require-css/css',
      'text': 'requirejs/text'
    }
  },

  // Shims for non-AMD libraries, mainly jQuery plugins
  shim: {
    'openajax': {
      exports: 'OpenAjax'
    },

    'zeroclipboard': {
      exports: 'ZeroClipboard'
    },

    'jquerymx': ['jquery'],
    'jquery.ui': ['jquery'],
    'jquery.ui.widget': ['jquery'],
    'jquery.jscrollpane': ['jquery'],
    'jquery.colorbox': ['jquery'],
    'jquery.selectbox': ['jquery'],
    'jquery.base64': ['jquery'],
    'jquery.cookie': ['jquery'],
    'jquery.urldecoder': ['jquery'],
    'jquery.fileupload': ['jquery'],
    'jquery.history': [
      'jquery',
      'history/scripts/compressed/history',
      'history/scripts/compressed/history.html4'
    ]
  }
}

我已经检查以确保 jQuery 和我的其他依赖项实际上正在加载,而且它们的顺序不正确。Intern 使用的 Dojo AMD 加载程序是否不处理 shim 配置?

4

2 回答 2

3

问题是实习生使用的 AMD 加载器当前没有实现shim配置属性AMD Specification。在您提出这个问题之前,我实际上并不知道它是标准的一部分。

目前,您可以通过 Intern 使用不同的 AMD 加载程序运行功能测试,但目前很难在本地机器上运行单元测试。

于 2013-05-08T14:18:02.153 回答
1

我所要做的就是将 useLoader 配置指向 require.js,然后噗。我在我的应用程序中使用了熟悉的 shim 配置和路径配置。巴姆。

于 2014-10-28T21:04:21.317 回答