jQuery 2.0 Grunt ビルド
jQuery 2.0 をビルドしてみよう
jQuery 2.0 を自前でビルドしてみます。自前でビルドすることでモジュールを省くことができます。
ビルド
ビルドするためにはgruntコマンドを使います。インストールしていない場合は、gruntをインストールしておきます。
gruntについては、nodebrew, npm, grunt 環境構築手順でインストールしてください。
また、grunt -version コマンドでgrunt-cliが入っていない場合は、grunt-cliをインストールしておきます。
$ grunt -version grunt-cli v0.1.7 grunt v0.4.1
ソース取得
githubからjqueryのソースを取得します
git clone git://github.com/jquery/jquery.git
依存ファイル取得
npm install
ビルド
grunt
カスタムビルド
grunt
カスタムビルド
custom:のあとにモジュールを指定します。
モジュール
- ajax: AJAX関連のモジュール
- ajax/xhr: XMLHTTPRequestを使ったAJAXのモジュール
- ajax/script:
<script>
タグを使ったAJAXのモジュール - ajax/jsonp: JSONPを使ったAJAXのモジュール
- css:
.css()
メソッドなどcssに関連するモジュール - deprecated: 廃止予定として文書化するモジュール
- dimensions: サイズを指定するモジュール
- effects: エフェクトに関するモジュール
- event-alias: イベントエイリアスのモジュール
- offset: オフセットのモジュール
- wrap: ラップモジュール
- sizzle: Sizzle セレクターエンジンのモジュール
詳しくはこちら https://github.com/jquery/jquery#how-to-build-your-own-jquery
grunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-event-alias,-offset,-sizzle
ビルドログ
$ git clone git://github.com/jquery/jquery.git Cloning into 'jquery'... remote: Counting objects: 28411, done. remote: Compressing objects: 100% (7550/7550), done. remote: Total 28411 (delta 20972), reused 27540 (delta 20262) Receiving objects: 100% (28411/28411), 14.38 MiB | 550 KiB/s, done. Resolving deltas: 100% (20972/20972), done. $ cd jquery $ ls AUTHORS.txt README.md src/ CONTRIBUTING.md build/ test/ Gruntfile.js package.json MIT-LICENSE.txt speed/ $ npm install npm http GET https://registry.npmjs.org/grunt-contrib-jshint/0.3.0 ... npm http 304 https://registry.npmjs.org/inherits grunt-git-authors@1.2.0 node_modules/grunt-git-authors grunt-update-submodules@0.2.0 node_modules/grunt-update-submodules grunt-compare-size@0.4.0-rc.3 node_modules/grunt-compare-size grunt-contrib-watch@0.3.1 node_modules/grunt-contrib-watch └── gaze@0.3.3 (minimatch@0.2.12, fileset@0.1.5) grunt@0.4.1 node_modules/grunt ├── which@1.0.5 ├── dateformat@1.0.2-1.2.3 ├── colors@0.6.0-1 ├── hooker@0.2.3 ├── async@0.1.22 ├── eventemitter2@0.4.11 ├── nopt@1.0.10 (abbrev@1.0.4) ├── rimraf@2.0.3 (graceful-fs@1.1.14) ├── coffee-script@1.3.3 ├── underscore.string@2.2.0rc ├── minimatch@0.2.12 (sigmund@1.0.0, lru-cache@2.3.0) ├── glob@3.1.21 (inherits@1.0.0, graceful-fs@1.2.0) ├── iconv-lite@0.2.8 ├── lodash@0.9.2 ├── findup-sync@0.1.2 (lodash@1.0.1) └── js-yaml@2.0.4 (argparse@0.1.11) gzip-js@0.3.1 node_modules/gzip-js ├── crc32@0.2.2 └── deflate-js@0.2.2 grunt-contrib-uglify@0.2.0 node_modules/grunt-contrib-uglify ├── grunt-lib-contrib@0.6.1 (zlib-browserify@0.0.1) └── uglify-js@2.2.5 (optimist@0.3.7, source-map@0.1.22) testswarm@0.2.2 node_modules/testswarm └── request@2.16.6 (forever-agent@0.2.0, aws-sign@0.2.0, tunnel-agent@0.2.0, oauth-sign@0.2.0, json-stringify-safe@3.0.0, cookie-jar@0.2.0, node-uuid@1.4.0, mime@1.2.9, qs@0.5.6, hawk@0.10.2, form-data@0.0.7) grunt-contrib-jshint@0.3.0 node_modules/grunt-contrib-jshint └── jshint@1.1.0 (peakle@0.0.1, underscore@1.4.4, shelljs@0.1.2, esprima@1.1.0-dev, minimatch@0.2.12, cli@0.4.4-2) $ grunt Running "update_submodules" task Running "selector" task File 'src/selector-sizzle.js' created. Running "build:all:*" (build) task File 'dist/jquery.js' created. Running "jshint:dist" (jshint) task >> 1 file lint free. Running "jshint:grunt" (jshint) task >> 1 file lint free. Running "jshint:tests" (jshint) task >> 23 files lint free. Running "pre-uglify:all" (pre-uglify) task Running "uglify:all" (uglify) task Source Map "dist/jquery.min.map" created. File "dist/jquery.min.js" created. Original: 239820 bytes. Minified: 83139 bytes. Running "dist:*" (dist) task Running "compare_size:files" (compare_size) task raw gz Sizes 240204 71171 dist/jquery.js 83103 29030 dist/jquery.min.js Saved as: master Done, without errors. $ grunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-event-alias,-offset,-sizzle Running "custom:-ajax,-css,-deprecated,-dimensions,-effects,-event-alias,-offset,-sizzle" (custom) task Creating custom build... Running "build:all:*:-ajax:-css:-deprecated:-dimensions:-effects:-event-alias:-offset:-sizzle" (build) task Excluding sizzle (src/selector-sizzle.js) Including sizzle alternate (src/selector-native.js) Excluding css (src/css.js) Excluding event-alias (src/event-alias.js) Excluding ajax (src/ajax.js) Excluding ajax/script (src/ajax/script.js) Excluding ajax/jsonp (src/ajax/jsonp.js) Excluding ajax/xhr (src/ajax/xhr.js) Excluding effects (src/effects.js) Excluding offset (src/offset.js) Excluding dimensions (src/dimensions.js) Excluding deprecated (src/deprecated.js) File 'dist/jquery.js' created. Running "pre-uglify:all" (pre-uglify) task Running "uglify:all" (uglify) task Source Map "dist/jquery.min.map" created. File "dist/jquery.min.js" created. Original: 116463 bytes. Minified: 42045 bytes. Running "dist" task Done, without errors.