RequireJS z jQuery Validation

Próbuję użyć RequireJS, aby dodać odwołania do moich plików skryptu sprawdzania poprawności jQuery. Mam 3 pliki skryptów zamiast zwykłych 1:

jquery.validate - biblioteka sprawdzania poprawności jqueryjquery.validate.unobtrusive - dodaje dyskretną walidację do biblioteki sprawdzania poprawności jquery (dzięki czemu można używać atrybutów danych i automatycznie je przewija). To zależy od jquery.validatejquery.validate.custom - dodaje moje własne niestandardowe metody sprawdzania poprawności i zależy od jquery.validate.unobtrusive

Ustawiłem następującą konfigurację:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom'
    },
    shim: {
        'Scripts/jquery.validate': ['jquery'],
        'Scripts/jquery.validate.unobtrusive': ['jquery', 'Scripts/jquery.validate'],
        'Scripts/jquery.validate.custom': ['jquery', 'Scripts/jquery.validate.unobtrusive']
    }
});

Teraz mam następujący moduł:

define(['jquery', 'jquery.validate'], function($) {
    alert('Yey!');
});

Jednak w pliku jquery.validate.custom pojawia się błąd informujący mnie, że dyskretna zależność nie została wprowadzona. Po debugowaniu za pomocą narzędzi przeglądarki i przejrzeniu karty sieci widzę, że z powodzeniem pobiera pliki jquery.validate.custom.js i jquery.validate.js, ale nawet nie próbuje pobrać jquery.validate.unobtrusive. plik js.

Byłbym wdzięczny, gdyby ktoś mógł mi pokazać, co robię źle. Dzięki

Edytować:

Próbowałem teraz:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom'
    },
    shim: {
        'Scripts/jquery.validate': ['jquery'],
        'Scripts/jquery.validate.unobtrusive': ['jquery', 'Scripts/jquery.validate'],
        'jquery.validate': ['jquery', 'Scripts/jquery.validate.unobtrusive']
    }
});

I działa poprawnie. Wypróbowałem również poniższe, ponieważ wydaje mi się, że wygląda lepiej:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom',
        'jquery.validate.core': 'Scripts/jquery.validate',
        'jquery.validate.unobtrusive': 'Scripts/jquery.validate.unobtrusive'
    },
    shim: {
        'jquery.validate.core': ['jquery'],
        'jquery.validate.unobtrusive': ['jquery', 'jquery.validate.core'],
        'jquery.validate': ['jquery', 'jquery.validate.unobtrusive']
    }
});

Ale to daje błąd limitu czasu.

Gdyby ktoś mógł wyjaśnić, dlaczego drugie rozwiązanie nie działa, byłoby świetnie. Dzięki

questionAnswers(2)

yourAnswerToTheQuestion