RequireJS和shim库不与AMD兼容硒

时间:2015-06-18 09:01:16

标签: jquery requirejs amd

您好我最近将我的应用程序更改为requireJS结构,并且我将所有第三方库修改为shim配置。但是,当我运行我的应用程序中的集成测试时,我遇到了一些失败,例如。

requirejs.config({
baseUrl: 'resources/js/lib/',
shim : {
    'bootstrap' : {deps: ['jquery']},
    'bootstrap-datepicker': { deps: ['jquery', 'bootstrap']},
    ...
},
paths: {
    'app': '../app',
    'jquery': 'jquery-1.11.1',
    'bootstrap' : 'bootstrap',
    'bootstrap-datepicker': 'bootstrap-datepicker',
    ...
}

});

但我得到了这个失败

$(...).collapse() its not a function.
$(...).datepicker() its not a function.

我找出了与AMD不兼容的库的问题(bootstrap.js,bootstrap-datepicker.js,selected.js,...)

有一些方法可以解决requireJS和非AMD库的问题吗?

由于

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,我希望这可以帮助每个人解决同样的问题。

  1. 您需要正确使用requirejs.config并添加您的shim库的所有相关依赖项。无需使用exports functionallity。

  2. 重要事项请务必使用所有与AMD兼容的第三方库

  3. 如果您有一些与AMD不兼容的第三方库,您可以按照此页面https://github.com/umdjs/umd轻松转换为AMD。最好的选择是使用AMD兼容的第三方库。