2012-09-07 33 views
5

Cuando presiono F5 para volver a cargar mi aplicación a veces arroja errores y otras veces no.RequireJS funciona de manera incoherente

Estoy depurando con Chrome. A veces, los informes de la consola este error:

Uncaught ReferenceError: unit_directionals is not defined 

veces lanza que una referencia no está definido como en este caso para jQuery: "ReferenceError no detectada: jQuery no se definen"

¿Qué puede estar mal si tengo definió los archivos de la manera correcta?

este es el código que tengo en las main.js señaló en el principal índice de html:

requirejs.config({ 
    baseUrl: 'js/lib', 
    paths:{ 
     app:'../app', 
     models: '../app/models', 
     views: '../app/views' 
    } 
}) 

requirejs(
    [ 
     //load lib in this order 
     'underscore', 'handlebars', 'jquery','backbone', 'uri', 
     //load models, views... 
     'app/models/items.model', 'app/models/results.model', 
     'app/views/items.view', 'app/views/results.view', 
     'app/index' 
    ], 
    function(jQuery,$,_....) { 
     //init app 
    } 
); 
+1

Parece el mismo problema que publiqué aquí: http://stackoverflow.com/questions/10959095/intermittent-requirejs-load-error. También hay un tema en Grupos de Google al respecto: https://groups.google.com/forum/?fromgroups#!topic/requirejs/Eym3R08Bmmg. Aún estamos tratando de encontrar una resolución. – redhotvengeance

+1

¡Si encuentra una solución, por favor hágamelo saber, realmente se apretujará! –

+0

Tuvimos este problema. Resultó jQuery se incluyó dos veces causando errores de secuencia de comandos aleatorios en F5. Se incluyó jQuery Once in require y otro en una etiqueta de script en una vista parcial de MVC. Eliminamos la etiqueta de script jQuery de la vista y está funcionando bien ahora; puede F5 todo el día. ¡Que dolor de cabeza! – Noobie3001

Respuesta

10

RequireJS cargado los módulos asíncrono y pueden cargar fuera de servicio - que no están garantizadas para cargar en el orden especificado en la llamada requerida. Si el script es un módulo AMD y llama a define() con sus dependencias, esto no es un problema.

Sin embargo, si la secuencia de comandos solo usa navegadores globales y dependencias implícitas, como la red troncal y probablemente las barras de manillar, entonces el shim config es necesario para expresar adecuadamente las dependencias y el valor de exportación.

Cuestiones relacionadas