2015-06-18 2 views
1

Привет, я недавно изменил свое приложение на структуру requireJS и изменил все сторонние библиотеки на конфигурацию прокладки. Но когда я запускаю интеграционные тесты, которые у меня есть в моем приложении, я получил некоторые сбои вроде.RequireJS и библиотеки прокладок не совместимы с AMD с селеном

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, бутстраповских-datepicker.js, chosen.js, ...)

Есть какой-то способ решить эту проблему с помощью библиотек requireJS и non AMD?

Благодаря

+0

Вы конкретно упомянули, что он не прошел тесты интеграции. Происходит ли это так * только * в тестах интеграции? – Louis

+0

Да, работает только с селеном, если его для доступа к пользователю он работает правильно – cralfaro

ответ

1

Я нашел решение, и я надеюсь, что это может помочь всем с той же проблемой.

  1. Вам необходимо правильно использовать requirejs.config и добавить все связанные зависимости ваших подгоночных библиотек. Не нужно использовать функцию экспорта.

  2. ВАЖЕН обязательно использовать все 3-библиотеки с AMD совместимом

  3. Если у вас есть библиотека третьей стороны, которая не является AMD совместима, вы можете следовать этой странице https://github.com/umdjs/umd легко конвертировать в AMD. Лучшим вариантом будет использование сторонних библиотек AMD.