2014-04-10 24 views
3

我給了一個模板來處理客戶端需要使用的大約28個不同jQuery插件的客戶端(例如,將它們切換爲非選項)。browserify在全局和模塊中使用JQuery

但是我真的想用browserify來模塊化我的代碼,但是沒有嘗試填充所有28插件並依賴性,我無法弄清楚如何做到這一點,而無需爲browserify和全局加載JQuery。

我試着這樣做:

window.JQuery = require('jquery') 
window.$ = window.JQuery 

這:

var globals = function(){ 
    window.JQuery = require('jquery') 
    window.$ = window.JQuery 
} 

globals(); 

但無論似乎工作和所有的插件拋出一個錯誤。現在有人可以如何讓它工作嗎?

回答

2

這是一個很好的方式來做到這一點,我想。

  1. NPM中安裝jQuery
  2. NPM安裝browserify-墊片
  3. 把你的package.json這一行:

    browserify-shim" : { 
        "./node_modules/jquery/dist/jquery.js" : "$" 
    } 
    

所以在服務器上,你平時require('jquery')將指向到node_modules點。當您運行browserify時,它會將window.$設置爲相同的代碼(您也可以使用jQuery)。另外,如果你確實想墊片這些插件,只需添加它們是這樣的:

"browserify-shim" : { 
     "./node_modules/jquery/dist/jquery.js" : "jQuery", 
     "./plugins/bs_modal.js" : { 
     "depends": [ "./node_modules/jquery/dist/jquery.js" ] 
     } 
    } 

,或者清潔劑:

"browser" : {"jquery: : "./node_modules/jquery/dist/jquery.js"}, 
    "browserify-shim" : { 
     "jquery" : "jQuery", 
     "./plugins/bs_modal.js" : { 
     "depends": [ "jquery" ] 
     } 
    } 
+0

現在如何在例如Backbone.View中使用bs_modal.js插件? – Pawel

0

我一直在使用下面的一行,得到引導和jQuery是browserified:

window.$ = window.jQuery = require('jquery'); 
+0

這是另一種方式。您正在將內部jQuery暴露給您的窗口,而不是在您的browserify世界中需要window.jQuery。 –

相關問題