RequireJS進階(二)


這一篇來認識下打包工具的paths參數,在入門一中就介紹了require.config方法的paths參數。用來配置jquery模塊的文件名(jQuery作為AMD模塊時id為“jquery”,但文件名可通過paths配置可以不必是“jquery.js”,而是帶有版本的如“jquery-1.7.2.js”)。

 

在入門一中,jquery-1.7.2.js和main.js都在一個域中,即把jquery-1.7.2.js下載到本地了。但有時可能一些JS資源不在同一個域。比如直接使用Google CDN上的jquery 1.7.2版本。而這時應該如何使用打包工具r.js呢?

 

r.js自然不會去載入非本地資源,即沒有辦法去把外域的js文件請求下來再合並,壓縮。當使用paths參數后,使用r.js合並壓縮時要忽略paths映射的文件-不合並它。讓其作為一個獨立模塊請求。

 

創建目錄及文件如下

和上一篇一樣,但main.js代碼不同,注意目錄中沒有jQuery庫。

 

main.js

require.config({
	baseUrl: 'js',
	paths: {
		'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min'
	}
});

require(['jquery', 'event', 'selector'], function($, E, S) {
	alert($);
});

配置了paths參數,即jquery模塊使用Google CDN的文件。

 

如果按照上一篇的命令來執行合並壓縮,

node r.js -o baseUrl=js name=main out=built.js

發現命令行報錯了,提示“D:\work\req\r5\js\jquery.js”不存在。剛剛新建的目錄中的確沒有jquery.js,因為我們使用的是Google CDN上的jquery。

 

此時壓縮參數paths就排上用處了,修改如下

node r.js -o baseUrl=js name=main out=built.js paths.jquery=empty:

注意紅色圈住的參數(empty后有個冒號哦),表示paths.jquery不參與合並,壓縮。這時生成的built.js也就不包含它了。

 

把目錄r5放到apache或其它web服務器上,訪問index.html。

 

網絡請求如下

built.js包含了main.js、event.js、cache.js,selector.js。jquery則是獨立的一個請求,來自ajax.googleapis.com。

 

再看看如何使用r.js來合並壓縮css文件。在r5下新建一個css文件夾,里面有四個css文件:main.css、nav.css、form.css、grid.css。

main.css是合並的主文件,或稱配置文件。要合並的文件使用@import引入。如下

 

main.css

@import url("nav.css");
@import url("grid.css");
@import url("form.css");

 

另外三個是普通的css文件,里面定義的各種樣式。這里不貼代碼了。這里將使用命令行將這四個文件合並后生成到r5/css/built.css。

node r.js -o cssIn=css/main.css out=css/built.css

這時回到r5/css目錄會發現多了一個built.css文件,該文件是另外四個css文件的合並項。

 

還可以使用optimizeCss參數設置來配置是否壓縮及壓縮選項。optimizeCss的取值有standard/none/standard.keepLines/standard.keepComments/standard.keepComments.keepLines。

none  不壓縮,僅合並

standard  標准壓縮 去換行、空格、注釋

standard.keepLines  除標准壓縮外,保留換行

standard.keepComments  除標准壓縮外,保留注釋

standard.keepComments.keepLines  除標准壓縮外,保留換行和注釋

 

示例:

node r.js -o cssIn=css/main.css out=css/built.css optimizeCss=standard

壓縮后built.css整個為一行了。

 

總結:

1,對於path配置的非本地的模塊文件,使用r.js合並壓縮時需要配置paths.xx=empty:。

2,cssIn和optimizeCss參數的使用來合並壓縮css文件。

 

r5.zip


免責聲明!

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



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