2014-02-18 69 views
0

我正在使用像backbone和jquery這樣的不同庫的requirejs。 我的計劃是使用grunt將所有庫解壓縮到一個文件中並在我的index.html文件中加載一次,因爲無論如何都需要所有庫,因此我想保存一些代碼。因此,不是每次我編寫一個新的骨幹視圖或模型時加載jquery和backbone,我只是簡單地使用Backbone和jquery,因爲它在全局範圍內加載。我加載的唯一東西是我的觀點,模型和集合。將requirejs文本插件集成到requirejs內核中

但文字插件讓我有些頭疼。它需要從我的連接的lib文件中分離出來。因爲每次我加載一個帶有「text!blabla.html」的HTML文件,它首先會在加載HTML文件之前加載插件text.js。所以我不能concat文本插件requirejs與所有其他庫,所以它預加載頁面加載。

是否有可能將文本插件集成到requirejs所以它在默認情況下核心「已知」。否則,我有一個lib文件,其中包含我的所有庫和text.js文件,因爲requirejs想要按需異步加載它,而不是將它與requirejs本身一起預加載。

任何人都可以幫助解決這項問題。其實這並沒有真正優化,因爲我現在被迫有2個GET請求來加載我的庫而不是一個。

+0

[r.js(http://requirejs.org/docs/optimization.html)已經解決了這些問題,它與呻吟,是串聯使用require.js /縮小文件項目的標準工具。 –

回答

0

尼科斯是在他的評論,你想使用r.js這是正確的。在所有裝有text!的文件在優化時已知的項目中,你可以有r.js包括裝有text!到優化包(一個或多個)的文件,並用存根替換text!插件本身。

+0

我這樣做,這是簡單地連接成一個,但這是行不通的。 text.js被封裝在一個define調用中,所以它需要加載require,但我想要將它集成到require js中。 concat不起作用。 – NovumCoder

+0

我暫時忘記了RequireJS會抱怨匿名定義。如果你不使用RequireJS,它比'cat'複雜一點,因爲你必須改變'define'調用,這樣第一個參數就是定義模塊的名字。這並不難,但它比「貓」更復雜。如果你要這樣做,那麼你可以使用'r.js',它會自動完成。我的答案的第一部分仍然是正確的。 – Louis