2013-05-07 8 views
7

Próbuję przetestować projekt Require.js za pomocą programu Intern. Występują błędy w moich testach, w których jQuery nie jest zdefiniowany podczas ładowania wtyczek jQuery. Moja ładowarka config wygląda następująco:Nie skonfigurowano konfiguracji procesora AMD shim

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' 
    ] 
    } 
} 

I zostały sprawdzone, aby upewnić się jQuery i moje inne zależności są rzeczywiście załadowany, a one są, tylko nie we właściwej kolejności. Czy program ładujący Dojo AMD, którego używa Intern nie obsługuje konfiguracji shim?

Odpowiedz

3

Problem polega na tym, że program ładujący AMD używany przez stażystę obecnie nie implementuje właściwości konfiguracyjnej shimAMD Specification. W rzeczywistości nie wiedziałem, że to część normy, dopóki nie zadałeś tego pytania.

W tej chwili można uruchomić testy funkcjonalne za pomocą innego programu ładującego AMD za pośrednictwem programu Intern, ale w tej chwili trudno byłoby uruchomić testy jednostkowe na lokalnej maszynie.

+1

Ah, założyłem, że zaimplementowałem podkładkę, ponieważ była częścią specyfikacji. Może muszę spróbować dodać to samemu :) – coreyschram

+0

Możesz użyć własnej wtyczki ładującej, aby kontrolować kolejność ładowania. Zobacz http://stackoverflow.com/a/26531410/1859442 – Benjamin

1

Wszystko, co musiałem zrobić, to wskazać konfigurację useLoader na require.js i poof. Miałem znaną konfigurację shim i ścieżkę, których używam w mojej aplikacji. Bam.