RequireJS進階(三)


進階的前面兩篇講述了r.js如何通過命令行把所有的模塊壓縮為一個js文件或把所有的css壓縮為一個css文件。其中包括一些壓縮配置參數的使用。

 

但以上兩種方式有幾個問題

1、通過命令手動配置壓縮選項顯得很呆板
2、都僅合並為一個文件

對於最后只生成一個文件的庫來說,這種方式並無不妥。比如jQuery,它的工程中小文件有20多個,打包后只有一個jquery-1.x.x.js。對於多數實際應用項目來說,可能打包后需要生成多個js文件。有些是頁面打開時就要用到的,有些是用戶點擊或輸入時按需加載的。

 

r.js有另外一種方式來合並壓縮,即通過一個配置文件(如build.js)。配置文件內部采用前端工程師非常熟悉JSON格式。這樣當項目開發目錄固定后,配置文件也相應固定。通過配置文件就很好的隔離了開發環境及上線環境。

 

這次我們創建的目錄中包含所有前端資源,js,css,圖片。

其中有兩個頁面page1.html,page2.html。這兩個頁面分別使用page1.js和page2.js。

 

page1.js依賴於event和selector,page2.js依賴於event、selector和jQuery。jQuery是非本地的,沒有合並前我們直接訪問這兩個頁面,那么單個的js文件會依次下載。

 

現在使用r.js來合並壓縮,使每個頁面除下載require.js外只下載各自合並的大文件page1.js和page2.js。


build.js如下

({
    appDir: "./",
    baseUrl: "js",
    dir: "../r6-built",
    paths: {
    	jquery: 'empty:'
    },
    modules: [
        {
            name: "page1"
        },
        {
            name: "page2"
        }
    ]
})

 

進入命令行輸入如下命令
node r.js -o build.js

會發現在和r6同級的目錄生成了r6-built目錄

該目錄包含於r6一樣的層級結構,這時訪問該目錄中的page1.html,page2.html。

這時的page1.js和page2.js就是其它模塊文件的合並。另外在r6-built中其它的模塊文件也被壓縮了。

 

在build.js中可以配置很多其它參數,可以在這個示例文件中找到更多配置選項。這里不一一列舉。

 

總結:

通過配置文件方式可以實現更加強大,靈活的合並工作。可以生成多個合並文件,包括不同頁面的js,css。

 

r6.zip

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM