2013-10-22 41 views
7

Ön kod kodunu modüle etmek için browserify ile düğüm uygulaması oluşturuyorum. Bu hatayı atmak çünkü Maalesef ben Backbone çalışmasını sağlayamıyoruz:

jQuery bu komut dosyası önce yüklenen
Uncaught TypeError: Property '$' of object #<Object> is not a function 

: browserify kullanırken jQuery bulamadık

var _ = require('underscore'), 
    Backbone = require('backbone'); 

// Here, jQuery works fine. 
$(function() { 
    Backbone.history.start(); 
}); 

Bu Omurga gibi görünebilir oluyor .

+0

Muhtemelen omurga için bir şime ihtiyacınız var, bir yerde bir yapılandırmanız var mı? – dezman

+0

"config" ile ne demek istiyorsun? Omurga CommonJS modülleri ile çalışmalıdır, bu yüzden shim gerektirmez. Hataya neden olan satırda bir kesme noktası koyduğunuzda – rgtk

+0

$ undefined? – dezman

cevap

12

El ile Backbone.$ = window.$'u ayarlayın. Omurga, global bir değişkende (yakalama ile tanımlanır) jquery'yi arar ve büyük olasılıkla global bağlamda olmayan (CommonJS ile uyumlu olan) script komutunu çalıştırır.

+0

Çalıştı, ama neden bunu yapmaya ihtiyacım var? jQuery, başka bir dosyadan yüklendiği için global değişkendir. – rgtk

+2

Bunun gibi bir şey olduğunu düşünüyorum: http://jsfiddle.net/zw4Pc/1/, yani işlevleri modüllerde kaydırır ve modül bağlamı gibi başka bir bağlamda çağırır. Eğer Backbone 'window. $ 'Kullandıysa o işe yaradı, ama Backbone jQuery'yi yakalamak için' ''. – vkurchatkin