2014-05-03 19 views
3

我想讓browserify-shim工作,但我似乎無法讓它創建我期望看到的全局變量。讓browserify-shim按預期工作

(注意,我的最終目標是讓這個從一飲而盡工作,但有很多問題後,我想我會消除一個變量,並嘗試在browserify得到這個工作單獨)

在這種情況下, ,我希望將「馬」創建爲指向jQuery庫的全局變量。

// package.json 

{ 
    "version": "0.0.1", 
    "browser": { 
    "jquery": "./lib/js/vendor/jquery-2.0.2.js" 
    }, 
    "browserify": { 
    "transform": [ 
     "browserify-shim" 
    ] 
    }, 
    "browserify-shim": { 
    "jquery": "global:horses" 
    }, 
    "devDependencies": { 
    // my dev dependencies 
    }, 
    "dependencies": { 
    // my production dependencies 
    } 
} 

利用這種配置,在命令行我運行:

browserify common.js > mycoolfile.js 

我則包括mycoolfile.js到我的應用程序,並在瀏覽器中運行它:

<script src="mycoolfile.js"></script> 

的browserified文件包括罰款,但是當我去鉻開發工具控制檯和輸入「馬」我得到一個未定義的錯誤。有關我可能做錯什麼的想法?謝謝

回答

4

我認爲你想通過exports得到jquery,並且你還假設global可以讓你創建一個全局模塊併爲其創建一個別名,但我認爲它沒有這樣做。如果jquery確實有一個叫做horses的全球創建的話,上面的方法可能會起作用,但是如果你只是隨意地設置了這個名字,那麼它就不會。我認爲你正試圖做更多這樣的事情:

"browserify-shim": { 
    "jquery": {"exports": "jQuery"} 
}, 
+0

謝謝彼得。您的評論和多次閱讀文檔幫助我登陸了適用於我的設置。對於未來的線程訪問者,這是browserify-shim文檔的相關部分:https://github.com/thlorenz/browserify-shim#multi-shim-example-including-dependencies –