Pergunta

Estou tentando incluir o jQuery Mobile em um projeto que usa RequireJS para AMD, porém, não quero carregar o jQuery Mobile como um módulo AMD.A ideia por trás disso é que usaremos AMD para lógica específica de aplicativo, mas quaisquer dependências de bibliotecas externas, como jQuery, serão trazidas para o escopo global apenas definindo manualmente as tags de script.

O problema que estou tendo é definir uma tag de script para jQuery mobile antes que a tag de script RequireJS pareça fazer com que o RequireJS defina um módulo anônimo e crie um conflito que não entendo.Examinei o código jQuery e jQuery Mobile e eles estão configurados para chamar condicionalmente o define() método se existir.Como estou incluindo essas tags antes do carregamento do RequireJS, elas não deveriam estar chamando define().Eu verifiquei isso com pontos de interrupção e eles realmente não o fazem.

Quando incluo o jQuery Mobile, recebo o seguinte erro:

Error: Mismatched anonymous define() module: [object Object]

Não entendo como isso acontece se o jQuery Mobile não está ligando define().O que estou fazendo de errado aqui?Isso é algo relacionado ao novo suporte AMD condicional do jQuery Mobile?

Foi útil?

Solução

Para confirmar, você deve usar a versão construída do jQuery mobile e incluí-la antes da tag require.js assim - observe que o jquery está incluído como uma tag de script, já que o jQuery mobile depende dele:

<script src="scripts/jquery.js"></script>
<script src="scripts/jquery.mobile.js"></script>
<script src="scripts/require.js" data-main="scripts/app"></script>

Espero que isso funcione.O erro que você vê pode ser gerado se você tiver scripts como este:

<script src="scripts/require.js" data-main="scripts/app"></script>
<script src="scripts/jquery.js"></script>
<script src="scripts/jquery.mobile.js"></script>

Considero isso mais um problema com o RequireJS, não com o jQuery mobile, algo que quero corrigir para o RequireJS 1.1.Mas o primeiro conjunto de tags de script deve funcionar.

Caso contrário, seria interessante saber mais como o módulo JS do seu aplicativo usa jQuery e jQuery mobile.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top