如何自己動手編譯自定義版本的最新jQuery類庫?
日期:2012-9-21 來源:GBin1.com
你是不是覺得jQuery類庫不夠靈活,不像其它的框架或者類庫,例如,dojo那樣一樣可以動態的加載模塊,或者你在你的項目中沒有使用jQuery提供的所有功能,比如,不需要AJAX相關功能,只需要DOM相關的操作功能。 那么能不能給我們的jQuery減減肥呢?在今天的這篇文章中,我們將介紹如何使用一些編譯工具來創建我們自己的jQuery類庫。
編譯需要的工具
在我們編譯前,我們需要準備3個編譯工具:
- git 1.7或者更新:用來克隆抓取jQuery代碼庫
- npm:這個在我們以前的node.js入門中介紹過,如果你安裝了node.js就包含了這個工具
- grunt:一個基于任務的命令行javascript編譯工具
安裝并且編譯
首先請下載git和npm,我們使用的是windows環境,下載并安裝git和node.js。如下:
下載git并安裝:
下載node.js并安裝:
注意這里我們使用npm來安裝grunt。
取得jQuery代碼并編譯
首先打開Git Bash,如果你安裝好了git,可以在開始菜單找到快捷方式,運行命令如下:
git clone git://github.com/jquery/jquery.git
你將看到正在抓取jquery的相關文件。如下圖:
完成后,我們將在本機用戶的個人目錄中找到目錄jquery。這是jquery工程文件目錄。
接下來,進入jquery目錄并且運行npm:
cd jquery && npm install
確認你安裝了grunt,輸入如下命令:
grunt -version
最后,使用grunt編譯,如下:
grunt
你將能夠在dist目錄下看到你編譯的jQuery。
注意:如果你遇到錯誤如下:
原因是沒有將子模塊抽取出來,請使用如下方式來解決:
git submodule update --init
再次運行grunt,則可以看到如下輸出:
大家可以看到我們在dist目錄下生成了3個版本的jquery.js
編譯自定義版本的jQuery
下面我們將編譯自定義版本的jQuery,在制作產品級別的jQuery類庫之前,請確認最新穩定版,如下:
git pull; git checkout $(git describe --abbrev=0 --tags)
然后確認所有的node依賴包還有所有的Git子模塊都已經check out。
npm install && grunt
現在我們開始編譯自定義版本,例如,我們不需要AJAX功能,則運行如下命令行:
grunt custom:-ajax
不需要css:
grunt custom:-css
不需要deprecated:
grunt custom:-deprecated
不需要dimensions:
grunt custom:-dimensions
不需要effects:
grunt custom:-effects
不需要offset:
grunt custom:-offset
不需要所有的可選模塊:
grunt custom:-offsetgrunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-offset
注意所有的依賴都被編譯內部處理。你不用擔心。
最后,運行Unit測試用例,保證代碼正確。
cd jquery && grunt watch
這樣你去dist查看一下jQuery類庫的代碼行數,可以看到文件更小了。
更多編譯信息,請查看jQuery的github地址: https://github.com/jquery/jquery
希望大家喜歡這篇文章,如果你有任何問題,請在我們的文章中留言,謝謝閱讀!