2013-06-10 26 views
5

nasılsa hep bu hatayı almaya tanımlanmamış:Requirejs: jQuery

Uncaught ReferenceError: jQuery is not defined

I (CDN üzerinden yüklenen) jQuery (Chrome ağ sekmesi tarafından teyit) yüklemek için daha fazla zaman alır izlenimi var. Bunu yerel olarak PC'imde çalıştırıyorum, bu yüzden CDN çağrısı her zaman kütüphanelerden daha uzun olacak. Ama jQuery diğer kütüphaneleri yüklemeden önce yüklenmesinin beklenmesi gerekmez mi?

Benim boot.js:

(function(){ 
    requirejs.config({ 
     baseUrl: '/assets/js/', 
     paths: { 
      'lib': 'lib/', 
      'src': 'src/', 
      'jquery': [ 
       '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min', 
       'lib/jquery-1.9.1.min' 
      ], 
      'mootools': 'lib/mootools-core-1.4.5', 
      'class.mutators': 'lib/Class.Mutators.jQuery' 
      //'order': 'assets/js/lib/order', 
     }, 
     shim: { 
      'class.mutators': { 
       deps: [ 
        'mootools' 
       ], 
       exports: 'classmutators' 
      }, 
      'underscore': { 
        exports: '_' 
      } 
     }, 
     waitSeconds: 15 
    }); 

    requirejs([ 
     'jquery', 
     'src/app-require' 
    ], function($){ 
     $(document).ready(function(){ 
      var App = new $.App($('body')); 
     }); 
    }); 

})(); 

Benim app-require.js:

define([ 
    'mootools', 
    'class.mutators', 
    'src/Tracker', 
    'lib/jquery.easing.1.3', 
    'lib/nivo/jquery.nivo.slider.pack', 
    'lib/isotope/jquery.isotope.min', 
    'lib/waypoints.min' 
], function() { 

var className = 'App'; 
//-- 
return $[className] = new Class({ 
    jQuery: className, 

    Implements: [Options, Events], 

    options: {}, 

    //-- init 
    //--------------------------------------------- 
    initialize: function(el, options) { 
       ... 
    }, 

      ... 
    }); 
}); 

Herhangi bir fikir?

+0

kullanım http: Burada

shim: { 'class.mutators': { deps: [ 'jquery', 'mootools' ], exports: 'classmutators' }, 'underscore': { exports: '_' } }, 

pul ile bir jQuery bağımlılığı nasıl işleneceğini resmi örnektir Yerelden krom yoluyla uygulama. çünkü chrome, yerelden erişirken jquery yüklemiyorken eriştiğinizde url'nize file: // ekler. bunun yerine uygulamanıza localhost – Kishore

+0

üzerinden erişmek için bir web sunucusu kurmalısınız 'http:' eklemeye çalıştım ama yine de aynı hata. Dosya 'http:' olmadan da yükleniyor. –

+0

hangi dosyadan kaynaklanıyor 'Uncaught ReferenceError: jQuery tanımlı değil' kaynaklı, konsolunuzda görebiliyor musunuz? –

cevap

4

jQuery herhangi bir bağımlılıkta değil. Sen mutator takoz bağımlılıkları eklemek gerekir: Eğer erişirken // jQuery url: https://github.com/requirejs/example-jquery-shim#how-its-set-up

+0

Bunu düzeltmek değil, sadece benim calss.mutators.js dosyası için bir bağımlılık eklemek değil mi? JQuery'i her şey için bir bağımlılık olarak kullanması gerekmiyor mu? Başka bir şeyden önce yüklenmesini zorluyor musun? –

+4

Classmutators yüklemeden önce jquery yüklemesini zorlar. Hangi dosyaların hatayı attığını belirlemediniz, bu yüzden bu adın (ad verildiğinde) olduğunu tahmin ettim. Ve hayır, require.js'nin jquery'yi her şey için bağımlılık olarak kullanması gerekmediğinden, her bir ekleme için bağımlılığı manuel olarak eklemeniz gerekir. – Antoine

+0

Haklısınız, çözdüğünüz shim'de 'src/app-require' için degerlere jquery ekleyiniz. Teşekkürler! –

İlgili konular