[英]Brunch: How to correctly deal with AMD and vendor code?
我真的很喜歡js中用於模塊管理的類AMD語法。 現在,我試圖找出如何在早午餐中使用require.js。 這是我要實現的目標:
問題是如果我加載require.js,一些供應商腳本正在嘗試定義匿名模塊。 這是從Backbone中摘錄的代碼,以供參考:
if (typeof define === 'function' && define.amd) {
define(['underscore', 'jquery', 'exports'], function(_, $, exports) {
//...
});
}
結果,require.js抱怨匿名模塊定義。
這就是默認情況下在早午餐中禁用包裝供應商代碼的原因。 許多供應商腳本具有UMD或它們自己的公開與通用模塊包裝不兼容的API的方式,但是如果不考慮它們,它們將與您的AMD結構一起使用。
您可能想做的是將您的供應商腳本按照需要由Brunch包裝的目錄和不需要的包裝在單獨的目錄中; 例如vendor
和vendor-wrapped
。 使用默認conventions
設置,Brunch會將腳本包裝在vendor-wrapped
而不是在vendor
。 然后,您可以將它們連接在一起(根據先前問題的示例 ):
joinTo:
'js/vendor.js': /^vendor(-wrapped)?[\\/](?!mocha|chai|sinon|sinon-chai)/
仍然有可能會遇到一些供應商腳本,這些腳本的結構使其即使與AMD也不兼容,即使在包裝時也是如此,在這種情況下,您的選擇是要么不使用這些庫,要么與作者合作。使它們更新,或維護自己的修改以使其與項目兼容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.