ExigirJS com validação de jQuery

Eu estou tentando usar o RequireJS para adicionar as referências aos meus arquivos de script de validação do jQuery. Eu tenho 3 arquivos de script em vez do usual 1:

jquery.validate - A biblioteca de validação jqueryjquery.validate.unobtrusive - Isso adiciona uma validação discreta à biblioteca de validação do jquery (para que você possa usar atributos de dados e conectá-los automaticamente). Isso depende do jquery.validatejquery.validate.custom - Isso adiciona meus próprios métodos de validação não invasivos e depende do jquery.validate.unobtrusive

Eu configurei a seguinte configuração:

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

Agora eu tenho o seguinte módulo:

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

No entanto, um erro é lançado no arquivo jquery.validate.custom, informando que a dependência não foi injetada. Depois de algumas depurações com as ferramentas do navegador e olhando para a aba de rede, eu posso ver que ele baixa com sucesso os arquivos jquery.validate.custom.js e jquery.validate.js, mas nem sequer tenta baixar o jquery.validate.unobtrusive. arquivo js.

Eu apreciaria se alguém pudesse me mostrar o que estou fazendo de errado. obrigado

Editar:

Eu tentei agora:

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

E isso funciona corretamente. Eu também tentei o seguinte, como eu acho que parece melhor:

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

Mas isso dá um erro de tempo limite.

Se alguém pudesse explicar por que a segunda solução não funciona, isso seria ótimo. obrigado

questionAnswers(2)

yourAnswerToTheQuestion