わすれっぽいきみえ

みらいのじぶんにやさしくしてやる

17日目: jQueryをコンパイル

jQueryからダウンロードもできるのだけども、せっかく13日目: HUBOTことはじめ(coffeescript使えるようにする) - わすれっぽいきみえでnode.jsを入れたVMがあるのだから、これを使ってjQueryをコンパイルしてみる。

まずはjQueryの素をダウンロード

jquery/jquery · GitHubよりgit clone

$ git clone git@github.com:jquery/jquery.git
Initialized empty Git repository in /home/vagrant/git_repo/jquery/.git/
remote: Counting objects: 31567, done.
remote: Compressing objects: 100% (9543/9543), done.
remote: Total 31567 (delta 23083), reused 29669 (delta 21389)
Receiving objects: 100% (31567/31567), 15.66 MiB | 290 KiB/s, done.
Resolving deltas: 100% (23083/23083), done.

開発版をコンパイル

jQueryをクローンしたフォルダに移動して

$ npm run-script build
(なんかいろいろダウンロード)
Running "jsonlint:pkg" (jsonlint) task
>> 1 file lint free.

Running "jsonlint:jscs" (jsonlint) task
>> 1 file lint free.

Running "jsonlint:bower" (jsonlint) task
>> 1 file lint free.

Running "build:all:*" (build) task
>> File 'dist/jquery.js' created.

Running "jshint:src" (jshint) task
>> 78 files lint free.

Running "jshint:dist" (jshint) task
>> 1 file lint free.

Running "jshint:grunt" (jshint) task
>> 6 files lint free.

Running "jshint:tests" (jshint) task
>> 25 files lint free.

Running "jscs:src" (jscs) task
>> 88 files without code style errors.

Running "jscs:gruntfile" (jscs) task
>> 1 files without code style errors.

Running "jscs:tasks" (jscs) task
>> 3 files without code style errors.

Running "uglify:all" (uglify) task
Source Map "dist/jquery.min.map" created.
File "dist/jquery.min.js" created.
Original: 245020 bytes.
Minified: 83747 bytes.

Running "dist:*" (dist) task

Running "compare_size:files" (compare_size) task
   raw     gz Sizes
245020  72564 dist/jquery.js
 83747  29318 dist/jquery.min.js

Saved as: master

Done, without errors.

いろいろ依存関係を解決しながらコンパイルしてくれる。ただこのときにいろいろ落としてきたものはグローバルにインストールされるわけではないので、もし開発版ではなく安定版をコンパイルしたいな、と思ったらGrunt: The JavaScript Task Runnerをインストールする必要がある。

Gruntのインストール

すでにnpmも使える環境なので、インストールはとても簡単。

$ npm install -g grunt-cli
(なんかいろいろダウンロード)
/home/vagrant/.nvm/v0.10.23/bin/grunt -> /home/vagrant/.nvm/v0.10.23/lib/node_modules/grunt-cli/bin/grunt
grunt-cli@0.1.11 /home/vagrant/.nvm/v0.10.23/lib/node_modules/grunt-cli
├-- resolve@0.3.1
├-- nopt@1.0.10 (abbrev@1.0.4)
∟-- findup-sync@0.1.2 (lodash@1.0.1, glob@3.1.21)

念のためGruntが入ったかチェック(といってもまたコンパイルされる)

$ grunt -v
(なんかめっちゃOK)
Done, without errors.

大丈夫らしい。

Gruntを使って自分の好きなバージョンのjQueryをインストール

まぁ好きなバージョンをインストールするだけならGruntいらないんだけど、ここはGruntを使いましょう。

2013-12-17現在、開発バージョンは2.1.0-beta2が入る。これはコンパイルされたjQueryのminifyされてないソースを直接見ればバージョン書いてるからわかる。
試しに1.10.2を手に入れる。

$ git branch
*master
$ git checkout -b v1.10.2
Switched to a new branch 'v1.10.2'
$ git reset --hard 1.10.2
HEAD is now at 3b0b953 Tagging the 1.10.2 release.

1.10.2のところを自分が落としたいjQueryのバージョンにする。
この状態で

$ npm install
(いろいろ依存関係解決してくれる)
$ grunt
(いろいろ頑張ってくれる)

この後dist下のjquery.jsを見てみたら1.10.2が作成されていた。やったね!

ちなみに

GruntをインストールするときにGetting started - Grunt: The JavaScript Task Runnerを見てみたら、

Grunt 0.4.xは0.8.0以上のNode.jsが必要です。Node.jsの奇数バージョンは不安定な開発バージョンです。*1

と書かれてて「え?奇数って不安定だったの?」と思ってContributing · joyent/node Wiki · GitHubを見に行くと

開発版は"master"ブランチにありますが、それは常に奇数バージョンです。*2 現行安定版に適応できる変更は常にmasterからバックポートすることで行います。*3

ってはっきり書かれてた。知らなかったー。

実際のログ

$ npm run-script build
npm http GET https://registry.npmjs.org/grunt-cli
npm http GET https://registry.npmjs.org/grunt-bowercopy
npm http GET https://registry.npmjs.org/grunt-compare-size
npm http GET https://registry.npmjs.org/grunt-contrib-jshint
npm http GET https://registry.npmjs.org/grunt-contrib-uglify
npm http GET https://registry.npmjs.org/grunt-contrib-watch
npm http GET https://registry.npmjs.org/grunt-git-authors
npm http 304 https://registry.npmjs.org/grunt-cli
npm http 304 https://registry.npmjs.org/grunt-contrib-watch
npm http 304 https://registry.npmjs.org/grunt-git-authors
npm http GET https://registry.npmjs.org/grunt-jscs-checker
npm http GET https://registry.npmjs.org/grunt-jsonlint
npm http GET https://registry.npmjs.org/gzip-js/0.3.2
npm http GET https://registry.npmjs.org/load-grunt-tasks
npm http GET https://registry.npmjs.org/testswarm
npm http GET https://registry.npmjs.org/requirejs
npm http GET https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/archiver
npm http GET https://registry.npmjs.org/grunt
npm http 304 https://registry.npmjs.org/grunt-contrib-uglify
npm http 304 https://registry.npmjs.org/grunt-bowercopy
npm http 304 https://registry.npmjs.org/grunt-jsonlint
npm http 304 https://registry.npmjs.org/gzip-js/0.3.2
npm http 304 https://registry.npmjs.org/testswarm
npm http 200 https://registry.npmjs.org/load-grunt-tasks
npm http 304 https://registry.npmjs.org/requirejs
npm http GET https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-0.2.1.tgz
npm http 304 https://registry.npmjs.org/archiver
npm http 304 https://registry.npmjs.org/which
npm http 304 https://registry.npmjs.org/grunt
npm http 304 https://registry.npmjs.org/grunt-compare-size
npm http 304 https://registry.npmjs.org/grunt-jscs-checker
npm http 200 https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-0.2.1.tgz
npm http GET https://registry.npmjs.org/grunt-contrib-jshint
npm http 304 https://registry.npmjs.org/grunt-contrib-jshint
npm http GET https://registry.npmjs.org/globule
npm http GET https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/jsonlint/1.6.0
npm http GET https://registry.npmjs.org/request
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/resolve
npm http GET https://registry.npmjs.org/bower
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/crc32
npm http GET https://registry.npmjs.org/deflate-js
npm http GET https://registry.npmjs.org/jscs/1.0.14
npm http GET https://registry.npmjs.org/xmlbuilder/0.4.3
npm http GET https://registry.npmjs.org/jshint
npm http GET https://registry.npmjs.org/colors
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http GET https://registry.npmjs.org/eventemitter2
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/hooker
npm http GET https://registry.npmjs.org/iconv-lite
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/underscore.string
npm http GET https://registry.npmjs.org/js-yaml
npm http GET https://registry.npmjs.org/exit
npm http GET https://registry.npmjs.org/getobject
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/grunt-lib-contrib
npm http GET https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/gaze
npm http GET https://registry.npmjs.org/tiny-lr/0.0.4
npm http 304 https://registry.npmjs.org/globule
npm http 304 https://registry.npmjs.org/request
npm http 304 https://registry.npmjs.org/findup-sync
npm http 304 https://registry.npmjs.org/resolve
npm http 304 https://registry.npmjs.org/bower
npm http 304 https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/crc32
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/archy/0.0.2
npm http GET https://registry.npmjs.org/bower-config
npm http 304 https://registry.npmjs.org/deflate-js
npm http GET https://registry.npmjs.org/bower-json
npm http GET https://registry.npmjs.org/bower-endpoint-parser
npm http GET https://registry.npmjs.org/bower-logger
npm http GET https://registry.npmjs.org/bower-registry-client
npm http GET https://registry.npmjs.org/cardinal
npm http GET https://registry.npmjs.org/chalk
npm http GET https://registry.npmjs.org/chmodr
npm http GET https://registry.npmjs.org/decompress-zip
npm http GET https://registry.npmjs.org/fstream
npm http GET https://registry.npmjs.org/fstream-ignore
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/handlebars
npm http GET https://registry.npmjs.org/inquirer
npm http GET https://registry.npmjs.org/junk
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/mout
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/open
npm http GET https://registry.npmjs.org/osenv/0.0.3
npm http GET https://registry.npmjs.org/promptly
npm http GET https://registry.npmjs.org/q
npm http GET https://registry.npmjs.org/request-progress
npm http GET https://registry.npmjs.org/retry
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/semver
npm http GET https://registry.npmjs.org/stringify-object
npm http GET https://registry.npmjs.org/sudo-block
npm http GET https://registry.npmjs.org/tar
npm http GET https://registry.npmjs.org/tmp
npm http GET https://registry.npmjs.org/update-notifier
npm http GET https://registry.npmjs.org/p-throttler
npm http 304 https://registry.npmjs.org/jscs/1.0.14
npm http 304 https://registry.npmjs.org/xmlbuilder/0.4.3
npm http GET https://registry.npmjs.org/esprima/1.0.3
npm http GET https://registry.npmjs.org/vow/0.3.9
npm http GET https://registry.npmjs.org/vow-fs/0.2.3
npm http GET https://registry.npmjs.org/colors/0.6.0-1
npm http GET https://registry.npmjs.org/commander/1.2.0
npm http GET https://registry.npmjs.org/minimatch/0.2.12
npm http GET https://registry.npmjs.org/glob/3.2.7
npm http 304 https://registry.npmjs.org/jshint
npm http GET https://registry.npmjs.org/shelljs
npm http GET https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/cli
npm http GET https://registry.npmjs.org/console-browserify
npm http 304 https://registry.npmjs.org/colors
npm http 304 https://registry.npmjs.org/async
npm http 304 https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/eventemitter2
npm http 304 https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http 304 https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/hooker
npm http 304 https://registry.npmjs.org/iconv-lite
npm http 304 https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/rimraf
npm http 304 https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/underscore.string
npm http 304 https://registry.npmjs.org/exit
npm http 304 https://registry.npmjs.org/js-yaml
npm http 304 https://registry.npmjs.org/getobject
npm http 304 https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/grunt-lib-contrib
npm http 304 https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/zlib-browserify/0.0.1
npm http 304 https://registry.npmjs.org/findup-sync
npm http 304 https://registry.npmjs.org/gaze
npm http 304 https://registry.npmjs.org/tiny-lr/0.0.4
npm http 304 https://registry.npmjs.org/jsonlint/1.6.0
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/uglify-to-browserify
npm http GET https://registry.npmjs.org/noptify
npm http GET https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/faye-websocket
npm http 304 https://registry.npmjs.org/nopt
npm http 304 https://registry.npmjs.org/archy/0.0.2
npm http 304 https://registry.npmjs.org/bower-config
npm http 304 https://registry.npmjs.org/bower-json
npm http 304 https://registry.npmjs.org/bower-endpoint-parser
npm http 304 https://registry.npmjs.org/bower-logger
npm http GET https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/bower-registry-client
npm http 304 https://registry.npmjs.org/chalk
npm http 304 https://registry.npmjs.org/chmodr
npm http 304 https://registry.npmjs.org/cardinal
npm http 304 https://registry.npmjs.org/decompress-zip
npm http 304 https://registry.npmjs.org/fstream-ignore
npm http 304 https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/fstream
npm http 304 https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/nomnom
npm http GET https://registry.npmjs.org/JSV
npm http GET https://registry.npmjs.org/argparse
npm http GET https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/inquirer
npm http 304 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/handlebars
npm http 304 https://registry.npmjs.org/junk
npm http 304 https://registry.npmjs.org/mout
npm http 304 https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/nopt
npm http 304 https://registry.npmjs.org/open
npm http 304 https://registry.npmjs.org/osenv/0.0.3
npm http 304 https://registry.npmjs.org/promptly
npm http 304 https://registry.npmjs.org/request-progress
npm http 304 https://registry.npmjs.org/retry
npm http 304 https://registry.npmjs.org/q
npm http 304 https://registry.npmjs.org/rimraf
npm http 304 https://registry.npmjs.org/stringify-object
npm http 304 https://registry.npmjs.org/tar
npm http 304 https://registry.npmjs.org/sudo-block
npm http 304 https://registry.npmjs.org/semver
npm http 304 https://registry.npmjs.org/tmp
npm http 304 https://registry.npmjs.org/update-notifier
npm http 304 https://registry.npmjs.org/p-throttler
npm http 304 https://registry.npmjs.org/esprima/1.0.3
npm http 304 https://registry.npmjs.org/vow/0.3.9
npm http 304 https://registry.npmjs.org/vow-fs/0.2.3
npm http 304 https://registry.npmjs.org/colors/0.6.0-1
npm http 304 https://registry.npmjs.org/minimatch/0.2.12
npm http 304 https://registry.npmjs.org/glob/3.2.7
npm http 304 https://registry.npmjs.org/commander/1.2.0
npm http 304 https://registry.npmjs.org/shelljs
npm http 304 https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/console-browserify
npm http 304 https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/cli
npm http 304 https://registry.npmjs.org/zlib-browserify/0.0.1
npm http GET https://registry.npmjs.org/has-color
npm http GET https://registry.npmjs.org/ansi-styles
npm http 304 https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/sigmund
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/configstore
npm http GET https://registry.npmjs.org/throttleit
npm http GET https://registry.npmjs.org/keypress
npm http 304 https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/read
npm http 304 https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/ansi-styles
npm http 304 https://registry.npmjs.org/uglify-to-browserify
npm http 304 https://registry.npmjs.org/noptify
npm http 304 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/node-uuid/1.4.0
npm http GET https://registry.npmjs.org/vow-queue/0.0.2
npm http 304 https://registry.npmjs.org/faye-websocket
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/argparse
npm http 304 https://registry.npmjs.org/JSV
npm http 304 https://registry.npmjs.org/nomnom
npm http GET https://registry.npmjs.org/deep-extend
npm http GET https://registry.npmjs.org/intersect
npm http GET https://registry.npmjs.org/mkpath
npm http GET https://registry.npmjs.org/binary
npm http GET https://registry.npmjs.org/touch/0.0.2
npm http 304 https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/has-color
npm http 304 https://registry.npmjs.org/configstore
npm http 304 https://registry.npmjs.org/throttleit
npm http 304 https://registry.npmjs.org/ansi-styles
npm http 304 https://registry.npmjs.org/keypress
npm http 304 https://registry.npmjs.org/read
npm http 304 https://registry.npmjs.org/node-uuid/1.4.0
npm http 304 https://registry.npmjs.org/ansi-styles
npm http 304 https://registry.npmjs.org/deep-extend
npm http 304 https://registry.npmjs.org/intersect
npm http 304 https://registry.npmjs.org/vow-queue/0.0.2
npm http 304 https://registry.npmjs.org/touch/0.0.2
npm http 304 https://registry.npmjs.org/mkpath
npm http 304 https://registry.npmjs.org/binary
npm http GET https://registry.npmjs.org/request-replay
npm http GET https://registry.npmjs.org/redeyed
npm http GET https://registry.npmjs.org/ansicolors
npm http GET https://registry.npmjs.org/mute-stream
npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/block-stream
npm http GET https://registry.npmjs.org/minimist
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/cli-color
npm http GET https://registry.npmjs.org/mute-stream/0.0.3
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/underscore.string
npm http GET https://registry.npmjs.org/buffers
npm http GET https://registry.npmjs.org/chainsaw
npm http GET https://registry.npmjs.org/tunnel-agent
npm http GET https://registry.npmjs.org/forever-agent
npm http GET https://registry.npmjs.org/http-signature
npm http GET https://registry.npmjs.org/hawk
npm http GET https://registry.npmjs.org/aws-sign
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/oauth-sign
npm http GET https://registry.npmjs.org/cookie-jar
npm http GET https://registry.npmjs.org/node-uuid
npm http GET https://registry.npmjs.org/form-data
npm http GET https://registry.npmjs.org/json-stringify-safe
npm http GET https://registry.npmjs.org/core-util-is
npm http GET https://registry.npmjs.org/debuglog/0.0.2
npm http GET https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/request-replay
npm http GET https://registry.npmjs.org/mout
npm http 304 https://registry.npmjs.org/block-stream
npm http 304 https://registry.npmjs.org/redeyed
npm http 304 https://registry.npmjs.org/minimist
npm http 304 https://registry.npmjs.org/abbrev
npm http 304 https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/async
npm http 304 https://registry.npmjs.org/cli-color
npm http 304 https://registry.npmjs.org/mute-stream/0.0.3
npm http GET https://registry.npmjs.org/es5-ext
npm http GET https://registry.npmjs.org/memoizee
npm http 304 https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/underscore.string
npm http 304 https://registry.npmjs.org/buffers
npm http 304 https://registry.npmjs.org/chainsaw
npm http GET https://registry.npmjs.org/traverse
npm http 304 https://registry.npmjs.org/tunnel-agent
npm http 304 https://registry.npmjs.org/forever-agent
npm http 304 https://registry.npmjs.org/http-signature
npm http 304 https://registry.npmjs.org/hawk
npm http 304 https://registry.npmjs.org/aws-sign
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/cookie-jar
npm http 304 https://registry.npmjs.org/oauth-sign
npm http 304 https://registry.npmjs.org/node-uuid
npm http 304 https://registry.npmjs.org/form-data
npm http 304 https://registry.npmjs.org/json-stringify-safe
npm http 304 https://registry.npmjs.org/core-util-is
npm http GET https://registry.npmjs.org/combined-stream
npm http GET https://registry.npmjs.org/assert-plus/0.1.2
npm http GET https://registry.npmjs.org/asn1/0.1.11
npm http GET https://registry.npmjs.org/ctype/0.5.2
npm http GET https://registry.npmjs.org/boom
npm http GET https://registry.npmjs.org/cryptiles
npm http GET https://registry.npmjs.org/sntp
npm http GET https://registry.npmjs.org/hoek
npm http 304 https://registry.npmjs.org/debuglog/0.0.2
npm http 304 https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/mout
npm http 304 https://registry.npmjs.org/es5-ext
npm http 304 https://registry.npmjs.org/memoizee
npm http 304 https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/ansicolors
npm http 304 https://registry.npmjs.org/traverse
npm http GET https://registry.npmjs.org/event-emitter
npm http GET https://registry.npmjs.org/next-tick
npm http 304 https://registry.npmjs.org/mute-stream
npm http 304 https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/combined-stream
npm http 304 https://registry.npmjs.org/assert-plus/0.1.2
npm http GET https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/asn1/0.1.11
npm http 304 https://registry.npmjs.org/ctype/0.5.2
npm http 304 https://registry.npmjs.org/boom
npm http 304 https://registry.npmjs.org/cryptiles
npm http 304 https://registry.npmjs.org/sntp
npm http 304 https://registry.npmjs.org/hoek
npm http GET https://registry.npmjs.org/delayed-stream/0.0.5
npm http 304 https://registry.npmjs.org/event-emitter
npm http 304 https://registry.npmjs.org/next-tick
npm http 304 https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/delayed-stream/0.0.5
which@1.0.5 node_modules/which

grunt-git-authors@1.2.0 node_modules/grunt-git-authors

grunt-compare-size@0.4.0-rc.3 node_modules/grunt-compare-size

requirejs@2.1.9 node_modules/requirejs

testswarm@1.1.0 node_modules/testswarm
∟-- request@2.12.0

gzip-js@0.3.2 node_modules/gzip-js
├-- crc32@0.2.2
∟-- deflate-js@0.2.3

archiver@0.4.10 node_modules/archiver
├-- readable-stream@1.0.17
∟-- iconv-lite@0.2.11

grunt-jscs-checker@0.2.6 node_modules/grunt-jscs-checker
├-- xmlbuilder@0.4.3
∟-- jscs@1.0.14 (colors@0.6.0-1, vow@0.3.9, commander@1.2.0, esprima@1.0.3, minimatch@0.2.12, glob@3.2.7, vow-fs@0.2.3)

load-grunt-tasks@0.2.1 node_modules/load-grunt-tasks
├-- globule@0.1.0 (lodash@1.0.1, minimatch@0.2.14, glob@3.1.21)
∟-- findup-sync@0.1.2 (lodash@1.0.1, glob@3.1.21)

grunt-contrib-jshint@0.7.2 node_modules/grunt-contrib-jshint
∟-- jshint@2.3.0 (console-browserify@0.1.6, underscore@1.4.4, minimatch@0.2.14, shelljs@0.1.4, cli@0.4.5)

grunt-cli@0.1.11 node_modules/grunt-cli
├-- nopt@1.0.10 (abbrev@1.0.4)
├-- resolve@0.3.1
∟-- findup-sync@0.1.2 (lodash@1.0.1, glob@3.1.21)

grunt-contrib-watch@0.5.3 node_modules/grunt-contrib-watch
├-- gaze@0.4.3 (globule@0.1.0)
∟-- tiny-lr@0.0.4 (debug@0.7.4, faye-websocket@0.4.4, qs@0.5.6, noptify@0.0.3)

grunt-jsonlint@1.0.4 node_modules/grunt-jsonlint
∟-- jsonlint@1.6.0 (nomnom@1.6.2, JSV@4.0.2)

grunt@0.4.2 node_modules/grunt
├-- dateformat@1.0.2-1.2.3
├-- eventemitter2@0.4.13
├-- getobject@0.1.0
├-- colors@0.6.2
├-- hooker@0.2.3
├-- async@0.1.22
├-- exit@0.1.2
├-- nopt@1.0.10 (abbrev@1.0.4)
├-- lodash@0.9.2
├-- coffee-script@1.3.3
├-- underscore.string@2.2.1
├-- iconv-lite@0.2.11
├-- findup-sync@0.1.2 (lodash@1.0.1)
├-- rimraf@2.0.3 (graceful-fs@1.1.14)
├-- minimatch@0.2.14 (sigmund@1.0.0, lru-cache@2.5.0)
├-- glob@3.1.21 (inherits@1.0.0, graceful-fs@1.2.3)
∟-- js-yaml@2.0.5 (esprima@1.0.4, argparse@0.1.15)

grunt-contrib-uglify@0.2.7 node_modules/grunt-contrib-uglify
├-- grunt-lib-contrib@0.6.1 (zlib-browserify@0.0.1)
∟-- uglify-js@2.4.7 (uglify-to-browserify@1.0.1, async@0.2.9, source-map@0.1.31, optimist@0.3.7)

grunt-bowercopy@0.4.1 node_modules/grunt-bowercopy
├-- lodash@2.4.1
∟-- bower@1.2.8 (junk@0.2.2, stringify-object@0.1.7, abbrev@1.0.4, chmodr@0.1.0, osenv@0.0.3, graceful-fs@2.0.1, archy@0.0.2, rimraf@2.2.5, bower-logger@0.2.1, open@0.0.4, p-throttler@0.0.1, bower-endpoint-parser@0.2.1, lru-cache@2.3.1, nopt@2.1.2, retry@0.6.0, mkdirp@0.3.5, tmp@0.0.23, q@0.9.7, semver@2.1.0, chalk@0.2.1, request-progress@0.3.1, fstream@0.1.25, sudo-block@0.2.1, bower-json@0.4.0, fstream-ignore@0.0.7, glob@3.2.7, tar@0.1.19, mout@0.7.1, update-notifier@0.1.7, decompress-zip@0.0.3, promptly@0.2.0, bower-config@0.5.0, handlebars@1.0.12, bower-registry-client@0.1.6, inquirer@0.3.5, cardinal@0.4.3, request@2.27.0)
Running "jsonlint:pkg" (jsonlint) task
>> 1 file lint free.

Running "jsonlint:jscs" (jsonlint) task
>> 1 file lint free.

Running "jsonlint:bower" (jsonlint) task
>> 1 file lint free.

Running "build:all:*" (build) task
>> File 'dist/jquery.js' created.

Running "jshint:src" (jshint) task
>> 78 files lint free.

Running "jshint:dist" (jshint) task
>> 1 file lint free.

Running "jshint:grunt" (jshint) task
>> 6 files lint free.

Running "jshint:tests" (jshint) task
>> 25 files lint free.

Running "jscs:src" (jscs) task
>> 88 files without code style errors.

Running "jscs:gruntfile" (jscs) task
>> 1 files without code style errors.

Running "jscs:tasks" (jscs) task
>> 3 files without code style errors.

Running "uglify:all" (uglify) task
Source Map "dist/jquery.min.map" created.
File "dist/jquery.min.js" created.
Original: 245020 bytes.
Minified: 83747 bytes.

Running "dist:*" (dist) task

Running "compare_size:files" (compare_size) task
   raw     gz Sizes
245020  72564 dist/jquery.js
 83747  29318 dist/jquery.min.js

Saved as: master

Done, without errors.
$ npm install -g grunt-cli
npm http GET https://registry.npmjs.org/grunt-cli
npm http 304 https://registry.npmjs.org/grunt-cli
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/resolve
npm http 304 https://registry.npmjs.org/resolve
npm http 304 https://registry.npmjs.org/nopt
npm http 304 https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/abbrev
npm http 304 https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
npm http 304 https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/sigmund
/home/vagrant/.nvm/v0.10.23/bin/grunt -> /home/vagrant/.nvm/v0.10.23/lib/node_modules/grunt-cli/bin/grunt
grunt-cli@0.1.11 /home/vagrant/.nvm/v0.10.23/lib/node_modules/grunt-cli
├-- resolve@0.3.1
├-- nopt@1.0.10 (abbrev@1.0.4)
∟-- findup-sync@0.1.2 (lodash@1.0.1, glob@3.1.21)
$ grunt -v
Initializing
Command-line options: --verbose

Reading "Gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.
Reading src/.jshintrc...OK
Parsing src/.jshintrc...OK
Reading package.json...OK
Parsing package.json...OK
Reading dist/.destination.json...ERROR
Initializing config...OK

Registering "grunt-bowercopy" local Npm module tasks.
Reading /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-bowercopy/package.json...OK
Parsing /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-bowercopy/package.json...OK
Reading bower.json...OK
Parsing bower.json...OK
Loading "bowercopy.js" tasks...OK
+ bowercopy

Registering "grunt-compare-size" local Npm module tasks.
Reading /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-compare-size/package.json...OK
Parsing /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-compare-size/package.json...OK
Loading "compare-size.js" tasks...OK
+ compare_size, compare_size:add, compare_size:empty, compare_size:list, compare_size:prune, compare_size:remove, compare_size_add, compare_size_empty, compare_size_list, compare_size_remove

Registering "grunt-contrib-jshint" local Npm module tasks.
Reading /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-contrib-jshint/package.json...OK
Parsing /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-contrib-jshint/package.json...OK
Loading "jshint.js" tasks...OK
+ jshint

Registering "grunt-contrib-uglify" local Npm module tasks.
Reading /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-contrib-uglify/package.json...OK
Parsing /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-contrib-uglify/package.json...OK
Loading "uglify.js" tasks...OK
+ uglify

Registering "grunt-contrib-watch" local Npm module tasks.
Reading /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-contrib-watch/package.json...OK
Parsing /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-contrib-watch/package.json...OK
Loading "watch.js" tasks...OK
+ watch

Registering "grunt-git-authors" local Npm module tasks.
Reading /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-git-authors/package.json...OK
Parsing /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-git-authors/package.json...OK
Loading "git-authors.js" tasks...OK
+ authors

Registering "grunt-jscs-checker" local Npm module tasks.
Reading /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-jscs-checker/package.json...OK
Parsing /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-jscs-checker/package.json...OK
Loading "jscs.js" tasks...OK
+ jscs

Registering "grunt-jsonlint" local Npm module tasks.
Reading /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-jsonlint/package.json...OK
Parsing /home/vagrant/not_ln_gitrepo/jquery/node_modules/grunt-jsonlint/package.json...OK
Loading "jsonlint.js" tasks...OK
+ jsonlint

Registering "build/tasks" tasks.
Loading "build.js" tasks...OK
+ build, custom
Loading "dist.js" tasks...OK
+ dist
Loading "testswarm.js" tasks...OK
+ testswarm
Loading "Gruntfile.js" tasks...OK
+ bower, default, dev

No tasks specified, running default tasks.
Running tasks: default

Running "default" task

Running "jsonlint" task

Running "jsonlint:pkg" (jsonlint) task
Verifying property jsonlint.pkg exists in config...OK
Files: package.json
Reading package.json...OK
>> File "package.json" is valid JSON.
>> 1 file lint free.

Running "jsonlint:jscs" (jsonlint) task
Verifying property jsonlint.jscs exists in config...OK
Files: .jscs.json
Reading .jscs.json...OK
>> File ".jscs.json" is valid JSON.
>> 1 file lint free.

Running "jsonlint:bower" (jsonlint) task
Verifying property jsonlint.bower exists in config...OK
Files: bower.json
Reading bower.json...OK
>> File "bower.json" is valid JSON.
>> 1 file lint free.

Running "dev" task

Running "build:*:*" (build) task

Running "build:all:*" (build) task
Verifying property build.all exists in config...OK
Files: -> dist/jquery.js
Excluded: (none)
Included: (none)
Writing dist/jquery.js...OK

FUNCTION
----------------
/home/vagrant/not_ln_gitrepo/jquery/src/var/arr.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/slice.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/concat.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/push.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/indexOf.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/class2type.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/toString.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/hasOwn.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/trim.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/support.js
/home/vagrant/not_ln_gitrepo/jquery/src/core.js
/home/vagrant/not_ln_gitrepo/jquery/src/sizzle/dist/sizzle.js
/home/vagrant/not_ln_gitrepo/jquery/src/selector-sizzle.js
/home/vagrant/not_ln_gitrepo/jquery/src/selector.js
/home/vagrant/not_ln_gitrepo/jquery/src/traversing/var/rneedsContext.js
/home/vagrant/not_ln_gitrepo/jquery/src/core/var/rsingleTag.js
/home/vagrant/not_ln_gitrepo/jquery/src/traversing/findFilter.js
/home/vagrant/not_ln_gitrepo/jquery/src/core/init.js
/home/vagrant/not_ln_gitrepo/jquery/src/traversing.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/rnotwhite.js
/home/vagrant/not_ln_gitrepo/jquery/src/callbacks.js
/home/vagrant/not_ln_gitrepo/jquery/src/deferred.js
/home/vagrant/not_ln_gitrepo/jquery/src/core/ready.js
/home/vagrant/not_ln_gitrepo/jquery/src/core/access.js
/home/vagrant/not_ln_gitrepo/jquery/src/data/accepts.js
/home/vagrant/not_ln_gitrepo/jquery/src/data/Data.js
/home/vagrant/not_ln_gitrepo/jquery/src/data/var/data_priv.js
/home/vagrant/not_ln_gitrepo/jquery/src/data/var/data_user.js
/home/vagrant/not_ln_gitrepo/jquery/src/data.js
/home/vagrant/not_ln_gitrepo/jquery/src/queue.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/pnum.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/var/cssExpand.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/var/isHidden.js
/home/vagrant/not_ln_gitrepo/jquery/src/manipulation/var/rcheckableType.js
/home/vagrant/not_ln_gitrepo/jquery/src/manipulation/support.js
/home/vagrant/not_ln_gitrepo/jquery/src/var/str.js
/home/vagrant/not_ln_gitrepo/jquery/src/event/support.js
/home/vagrant/not_ln_gitrepo/jquery/src/event.js
/home/vagrant/not_ln_gitrepo/jquery/src/manipulation.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/defaultDisplay.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/var/rmargin.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/var/rnumnonpx.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/var/getStyles.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/curCSS.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/addGetHookIf.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/support.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/swap.js
/home/vagrant/not_ln_gitrepo/jquery/src/css.js
/home/vagrant/not_ln_gitrepo/jquery/src/effects/Tween.js
/home/vagrant/not_ln_gitrepo/jquery/src/effects.js
/home/vagrant/not_ln_gitrepo/jquery/src/queue/delay.js
/home/vagrant/not_ln_gitrepo/jquery/src/attributes/support.js
/home/vagrant/not_ln_gitrepo/jquery/src/attributes/attr.js
/home/vagrant/not_ln_gitrepo/jquery/src/attributes/prop.js
/home/vagrant/not_ln_gitrepo/jquery/src/attributes/classes.js
/home/vagrant/not_ln_gitrepo/jquery/src/attributes/val.js
/home/vagrant/not_ln_gitrepo/jquery/src/attributes.js
/home/vagrant/not_ln_gitrepo/jquery/src/event/alias.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax/var/nonce.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax/var/rquery.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax/parseJSON.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax/parseXML.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax.js
/home/vagrant/not_ln_gitrepo/jquery/src/manipulation/_evalUrl.js
/home/vagrant/not_ln_gitrepo/jquery/src/wrap.js
/home/vagrant/not_ln_gitrepo/jquery/src/css/hiddenVisibleSelectors.js
/home/vagrant/not_ln_gitrepo/jquery/src/serialize.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax/xhr.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax/script.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax/jsonp.js
/home/vagrant/not_ln_gitrepo/jquery/src/core/parseHTML.js
/home/vagrant/not_ln_gitrepo/jquery/src/ajax/load.js
/home/vagrant/not_ln_gitrepo/jquery/src/effects/animatedSelector.js
/home/vagrant/not_ln_gitrepo/jquery/src/offset.js
/home/vagrant/not_ln_gitrepo/jquery/src/dimensions.js
/home/vagrant/not_ln_gitrepo/jquery/src/deprecated.js
/home/vagrant/not_ln_gitrepo/jquery/src/exports/amd.js
/home/vagrant/not_ln_gitrepo/jquery/src/jquery.js

>> File 'dist/jquery.js' created.

Running "jshint" task

Running "jshint:src" (jshint) task
Verifying property jshint.src exists in config...OK
Files: src/ajax.js, src/ajax/jsonp.js, src/ajax/load.js, src/ajax/parseJSON.js, src/ajax/parseXML.js, src/ajax/script.js, src/ajax/var/nonce.js, src/ajax/var/rquery.js, src/ajax/xhr.js, src/attributes.js, src/attributes/attr.js, src/attributes/classes.js, src/attributes/prop.js, src/attributes/support.js, src/attributes/val.js, src/callbacks.js, src/core.js, src/core/access.js, src/core/init.js, src/core/parseHTML.js, src/core/ready.js, src/core/var/rsingleTag.js, src/css.js, src/css/addGetHookIf.js, src/css/curCSS.js, src/css/defaultDisplay.js, src/css/hiddenVisibleSelectors.js, src/css/support.js, src/css/swap.js, src/css/var/cssExpand.js, src/css/var/getStyles.js, src/css/var/isHidden.js, src/css/var/rmargin.js, src/css/var/rnumnonpx.js, src/data.js, src/data/Data.js, src/data/accepts.js, src/data/var/data_priv.js, src/data/var/data_user.js, src/deferred.js, src/deprecated.js, src/dimensions.js, src/effects.js, src/effects/Tween.js, src/effects/animatedSelector.js, src/event.js, src/event/alias.js, src/event/support.js, src/exports/amd.js, src/intro.js, src/jquery.js, src/manipulation.js, src/manipulation/_evalUrl.js, src/manipulation/support.js, src/manipulation/var/rcheckableType.js, src/offset.js, src/outro.js, src/queue.js, src/queue/delay.js, src/selector-native.js, src/selector-sizzle.js, src/selector.js, src/serialize.js, src/sizzle/dist/sizzle.js, src/sizzle/dist/sizzle.min.js, src/sizzle/test/data/empty.js, src/sizzle/test/data/testinit.js, src/sizzle/test/jquery.js, src/sizzle/test/unit/extending.js, src/sizzle/test/unit/selector.js, src/sizzle/test/unit/utilities.js, src/traversing.js, src/traversing/findFilter.js, src/traversing/var/rneedsContext.js, src/var/arr.js, src/var/class2type.js, src/var/concat.js, src/var/hasOwn.js, src/var/indexOf.js, src/var/pnum.js, src/var/push.js, src/var/rnotwhite.js, src/var/slice.js, src/var/strundefined.js, src/var/support.js, src/var/toString.js, src/var/trim.js, src/wrap.js
Options: force=false, reporterOutput=null, jshintrc="src/.jshintrc"
JSHint options: force=false, reporterOutput=null, jshintrc="src/.jshintrc"
OK
>> 78 files lint free.

Running "jshint:dist" (jshint) task
Verifying property jshint.dist exists in config...OK
Files: dist/jquery.js
Options: force=false, reporterOutput=null, boss, curly, eqeqeq, eqnull, expr, immed, noarg, quotmark="double", smarttabs, trailing, undef, unused, sub, browser, globals={"jQuery":true,"define":true,"module":true}
JSHint options: force=false, reporterOutput=null, boss, curly, eqeqeq, eqnull, expr, immed, noarg, quotmark="double", smarttabs, trailing, undef, unused, sub, browser, globals={"jQuery":true,"define":true,"module":true}
OK
>> 1 file lint free.

Running "jshint:grunt" (jshint) task
Verifying property jshint.grunt exists in config...OK
Files: Gruntfile.js, build/tasks/build.js, build/tasks/dist.js, build/tasks/testswarm.js, build/release-notes.js, build/release.js
Options: force=false, reporterOutput=null, jshintrc=".jshintrc"
JSHint options: force=false, reporterOutput=null, jshintrc=".jshintrc"
OK
>> 6 files lint free.

Running "jshint:tests" (jshint) task
Verifying property jshint.tests exists in config...OK
Files: test/data/badcall.js, test/data/badjson.js, test/data/jquery-1.9.1.js, test/data/json_obj.js, test/data/readywaitasset.js, test/data/readywaitloader.js, test/data/support/csp.js, test/data/support/getComputedSupport.js, test/data/test.js, test/data/testinit.js, test/data/testrunner.js, test/jquery.js, test/libs/qunit/qunit.js, test/libs/require.js, test/libs/sinon/fake_timers.js, test/unit/ajax.js, test/unit/attributes.js, test/unit/callbacks.js, test/unit/core.js, test/unit/css.js, test/unit/data.js, test/unit/deferred.js, test/unit/deprecated.js, test/unit/dimensions.js, test/unit/effects.js, test/unit/event.js, test/unit/exports.js, test/unit/manipulation.js, test/unit/offset.js, test/unit/queue.js, test/unit/ready.js, test/unit/selector.js, test/unit/serialize.js, test/unit/support.js, test/unit/traversing.js, test/unit/wrap.js
Options: force=false, reporterOutput=null, jshintrc="test/.jshintrc"
JSHint options: force=false, reporterOutput=null, jshintrc="test/.jshintrc"
OK
>> 25 files lint free.

Running "jscs" task

Running "jscs:src" (jscs) task
Verifying property jscs.src exists in config...OK
Files: src/ajax.js, src/ajax/jsonp.js, src/ajax/load.js, src/ajax/parseJSON.js, src/ajax/parseXML.js, src/ajax/script.js, src/ajax/var/nonce.js, src/ajax/var/rquery.js, src/ajax/xhr.js, src/attributes.js, src/attributes/attr.js, src/attributes/classes.js, src/attributes/prop.js, src/attributes/support.js, src/attributes/val.js, src/callbacks.js, src/core.js, src/core/access.js, src/core/init.js, src/core/parseHTML.js, src/core/ready.js, src/core/var/rsingleTag.js, src/css.js, src/css/addGetHookIf.js, src/css/curCSS.js, src/css/defaultDisplay.js, src/css/hiddenVisibleSelectors.js, src/css/support.js, src/css/swap.js, src/css/var/cssExpand.js, src/css/var/getStyles.js, src/css/var/isHidden.js, src/css/var/rmargin.js, src/css/var/rnumnonpx.js, src/data.js, src/data/Data.js, src/data/accepts.js, src/data/var/data_priv.js, src/data/var/data_user.js, src/deferred.js, src/deprecated.js, src/dimensions.js, src/effects.js, src/effects/Tween.js, src/effects/animatedSelector.js, src/event.js, src/event/alias.js, src/event/support.js, src/exports/amd.js, src/intro.js, src/jquery.js, src/manipulation.js, src/manipulation/_evalUrl.js, src/manipulation/support.js, src/manipulation/var/rcheckableType.js, src/offset.js, src/outro.js, src/queue.js, src/queue/delay.js, src/selector-native.js, src/selector-sizzle.js, src/selector.js, src/serialize.js, src/sizzle/dist/sizzle.js, src/sizzle/dist/sizzle.min.js, src/sizzle/test/data/empty.js, src/sizzle/test/data/testinit.js, src/sizzle/test/jquery.js, src/sizzle/test/unit/extending.js, src/sizzle/test/unit/selector.js, src/sizzle/test/unit/utilities.js, src/traversing.js, src/traversing/findFilter.js, src/traversing/var/rneedsContext.js, src/var/arr.js, src/var/class2type.js, src/var/concat.js, src/var/hasOwn.js, src/var/indexOf.js, src/var/pnum.js, src/var/push.js, src/var/rnotwhite.js, src/var/slice.js, src/var/strundefined.js, src/var/support.js, src/var/toString.js, src/var/trim.js, src/wrap.js -> src
Options: config=".jscs.json"
>> 88 files without code style errors.

Running "jscs:gruntfile" (jscs) task
Verifying property jscs.gruntfile exists in config...OK
Files: Gruntfile.js -> gruntfile
Options: config=".jscs.json"
>> 1 files without code style errors.

Running "jscs:tasks" (jscs) task
Verifying property jscs.tasks exists in config...OK
Files: build/tasks/build.js, build/tasks/dist.js, build/tasks/testswarm.js -> tasks
Options: config=".jscs.json"
>> 3 files without code style errors.

Running "uglify" task

Running "uglify:all" (uglify) task
Verifying property uglify.all exists in config...OK
Files: dist/jquery.js -> dist/jquery.min.js
Options: banner="/*! jQuery v2.1.0-pre | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license */", footer="", compress={"hoist_funs":false,"loops":false,"unused":false}, mangle={}, beautify={"ascii_only":true}, report="min", preserveComments=false, sourceMap="dist/jquery.min.map", sourceMappingURL="jquery.min.map"
Minifying with UglifyJS...Reading dist/jquery.js...OK
OK
Writing dist/jquery.min.js...OK
Writing dist/jquery.min.map...OK
Source Map "dist/jquery.min.map" created.
File "dist/jquery.min.js" created.
Original: 245020 bytes.
Minified: 83747 bytes.

Running "dist:*" (dist) task

Running "compare_size" task

Running "compare_size:files" (compare_size) task
Verifying property compare_size.files exists in config...OK
Files: dist/jquery.js, dist/jquery.min.js -> files
Options: compress={}, cache="build/.sizecache.json"
Reading dist/jquery.js...OK
Reading dist/jquery.min.js...OK
Reading build/.sizecache.json...OK
Parsing build/.sizecache.json...OK
Running `git branch` command...   raw     gz Sizes                              
245020  72564 dist/jquery.js
 83747  29318 dist/jquery.min.js

   raw     gz Compared to master @ 846771081c038f523612087d76deb3c853e252fd
     =      = dist/jquery.js
     =      = dist/jquery.min.js

   raw     gz Compared to last run
     =      = dist/jquery.js
     =      = dist/jquery.min.js

Saved as: master
Writing build/.sizecache.json...OK

Done, without errors.
$ npm install
npm http GET https://registry.npmjs.org/grunt-contrib-watch/0.3.1
npm http GET https://registry.npmjs.org/grunt-contrib-jshint/0.3.0
npm http GET https://registry.npmjs.org/grunt-update-submodules/0.2.0
npm http GET https://registry.npmjs.org/grunt-contrib-uglify/0.2.0
npm http GET https://registry.npmjs.org/grunt/0.4.1
npm http GET https://registry.npmjs.org/gzip-js/0.3.1
npm http 200 https://registry.npmjs.org/grunt-update-submodules/0.2.0
npm http 200 https://registry.npmjs.org/grunt-contrib-watch/0.3.1
npm http GET https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.3.1.tgz
npm http 200 https://registry.npmjs.org/gzip-js/0.3.1
npm http GET https://registry.npmjs.org/grunt-update-submodules/-/grunt-update-submodules-0.2.0.tgz
npm http GET https://registry.npmjs.org/gzip-js/-/gzip-js-0.3.1.tgz
npm http 200 https://registry.npmjs.org/grunt-contrib-jshint/0.3.0
npm http GET https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.3.0.tgz
npm http 200 https://registry.npmjs.org/grunt/0.4.1
npm http 200 https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.3.1.tgz
npm http GET https://registry.npmjs.org/grunt/-/grunt-0.4.1.tgz
npm http 200 https://registry.npmjs.org/grunt-update-submodules/-/grunt-update-submodules-0.2.0.tgz
npm http 200 https://registry.npmjs.org/gzip-js/-/gzip-js-0.3.1.tgz
npm http 200 https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.3.0.tgz
npm http 200 https://registry.npmjs.org/grunt/-/grunt-0.4.1.tgz
npm http GET https://registry.npmjs.org/grunt-contrib-uglify/0.2.0
npm http 200 https://registry.npmjs.org/grunt-contrib-uglify/0.2.0
npm http GET https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.2.0.tgz
npm http 200 https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.2.0.tgz
npm http GET https://registry.npmjs.org/crc32
npm http GET https://registry.npmjs.org/deflate-js
npm http GET https://registry.npmjs.org/jshint
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/grunt-lib-contrib
npm http GET https://registry.npmjs.org/gaze
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/colors
npm http GET https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http GET https://registry.npmjs.org/eventemitter2
npm http GET https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/hooker
npm http GET https://registry.npmjs.org/iconv-lite
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/underscore.string
npm http GET https://registry.npmjs.org/js-yaml
npm http 304 https://registry.npmjs.org/deflate-js
npm http 304 https://registry.npmjs.org/jshint
npm http GET https://registry.npmjs.org/jshint/-/jshint-1.1.0.tgz
npm http 304 https://registry.npmjs.org/gaze
npm http GET https://registry.npmjs.org/gaze/-/gaze-0.3.4.tgz
npm http 304 https://registry.npmjs.org/async
npm http 304 https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/colors
npm http 304 https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http 304 https://registry.npmjs.org/eventemitter2
npm http 304 https://registry.npmjs.org/findup-sync
npm http 304 https://registry.npmjs.org/hooker
npm http 304 https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/iconv-lite
npm http 304 https://registry.npmjs.org/nopt
npm http 304 https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/rimraf
npm http 304 https://registry.npmjs.org/underscore.string
npm http 304 https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/js-yaml
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz
npm http GET https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/crc32
npm http 304 https://registry.npmjs.org/grunt-lib-contrib
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
npm http 200 https://registry.npmjs.org/jshint/-/jshint-1.1.0.tgz
npm http 200 https://registry.npmjs.org/gaze/-/gaze-0.3.4.tgz
npm http GET https://registry.npmjs.org/graceful-fs
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/argparse
npm http GET https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/fileset
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/argparse
npm http GET https://registry.npmjs.org/zlib-browserify/0.0.1
npm http GET https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/optimist
npm http 304 https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/underscore
npm http 200 https://registry.npmjs.org/fileset
npm http GET https://registry.npmjs.org/fileset/-/fileset-0.1.5.tgz
npm http 304 https://registry.npmjs.org/abbrev
npm http 304 https://registry.npmjs.org/zlib-browserify/0.0.1
npm http 304 https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/sigmund
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 200 https://registry.npmjs.org/fileset/-/fileset-0.1.5.tgz
npm http GET https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/peakle
npm http GET https://github.com/ariya/esprima/tarball/master
npm http GET https://registry.npmjs.org/shelljs
npm http GET https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/cli
npm http GET https://registry.npmjs.org/minimatch
npm http 200 https://registry.npmjs.org/peakle
npm http 304 https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/peakle/-/peakle-0.0.1.tgz
npm http GET https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/shelljs
npm http 304 https://registry.npmjs.org/cli
npm http 304 https://registry.npmjs.org/minimatch
npm http 200 https://github.com/ariya/esprima/tarball/master
npm http 304 https://registry.npmjs.org/inherits
npm http 200 https://registry.npmjs.org/peakle/-/peakle-0.0.1.tgz
npm http GET https://registry.npmjs.org/sigmund
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/sigmund
npm http GET https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/inherits
npm WARN prefer global grunt-cli@0.1.11 should be installed with -g
grunt-update-submodules@0.2.0 node_modules/grunt-update-submodules

gzip-js@0.3.1 node_modules/gzip-js
├-- crc32@0.2.2
∟-- deflate-js@0.2.3

grunt@0.4.1 node_modules/grunt
├-- dateformat@1.0.2-1.2.3
├-- eventemitter2@0.4.13
├-- colors@0.6.2
├-- hooker@0.2.3
├-- async@0.1.22
├-- lodash@0.9.2
├-- coffee-script@1.3.3
├-- underscore.string@2.2.1
├-- findup-sync@0.1.2 (lodash@1.0.1)
├-- iconv-lite@0.2.11
├-- rimraf@2.0.3 (graceful-fs@1.1.14)
├-- nopt@1.0.10 (abbrev@1.0.4)
├-- js-yaml@2.0.5 (esprima@1.0.4, argparse@0.1.15)
├-- minimatch@0.2.14 (sigmund@1.0.0, lru-cache@2.5.0)
∟-- glob@3.1.21 (inherits@1.0.0, graceful-fs@1.2.3)

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.31)

grunt-contrib-watch@0.3.1 node_modules/grunt-contrib-watch
∟-- gaze@0.3.4 (minimatch@0.2.14, fileset@0.1.5)

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.4, esprima@1.1.0-dev, minimatch@0.2.14, cli@0.4.5)
$ 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: 272832 bytes.
Minified: 93135 bytes.

Running "post-uglify:all" (post-uglify) task

Running "dist:*" (dist) task

Running "compare_size:files" (compare_size) task
   raw     gz Sizes
273199  81123 dist/jquery.js
 93100  32790 dist/jquery.min.js

Saved as: v1.10

Done, without errors.

*1:Grunt 0.4.x requires stable Node.js versions >= 0.8.0. Odd version numbers of Node.js are considered unstable development versions.の訳

*2:Most development happens on the “master” branch, which is always an odd version

*3:Applicable changes to the current stable version will usually be backported from master