Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 148 lines (95 sloc) 5.658 kB
ebf2fac @xavierm02 Javascript -> JavaScript except if it was intentional to avoid lettin…
xavierm02 authored
1 [jQuery](http://jquery.com/) - New Wave JavaScript
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
2 ==================================================
a1bb3ee from txt to markdown
Michael Bensoussan authored
3
4 What you need to build your own jQuery
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
5 --------------------------------------
a1bb3ee from txt to markdown
Michael Bensoussan authored
6
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
7 In order to build jQuery, you need to have GNU make 3.8 or later, Node.js 0.2 or later, and git 1.7 or later.
8 (Earlier versions might work OK, but are not tested.)
a1bb3ee from txt to markdown
Michael Bensoussan authored
9
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
10 Windows users have two options:
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
11
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
12 1. Install [msysgit](https://code.google.com/p/msysgit/) (Full installer for official Git),
13 [GNU make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm), and a
14 [binary version of Node.js](http://node-js.prcn.co.cc/). Make sure all three packages are installed to the same
15 location (by default, this is C:\Program Files\Git).
3d0aa19 @csnover Clarify cygwin instructions slightly and swap the order of arguments …
csnover authored
16 2. Install [Cygwin](http://cygwin.com/) (make sure you install the git, make, and which packages), then either follow
17 the [Node.js build instructions](https://github.com/ry/node/wiki/Building-node.js-on-Cygwin-%28Windows%29) or install
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
18 the [binary version of Node.js](http://node-js.prcn.co.cc/).
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
19
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
20 Mac OS users should install Xcode (comes on your Mac OS install DVD, or downloadable from
21 [Apple's Xcode site](http://developer.apple.com/technologies/xcode.html)) and
22 [http://mxcl.github.com/homebrew/](Homebrew). Once Homebrew is installed, run `brew install git` to install git,
23 and `brew install node` to install Node.js.
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
24
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
25 Linux/BSD users should use their appropriate package managers to install make, git, and node, or build from source
26 if you swing that way. Easy-peasy.
a1bb3ee from txt to markdown
Michael Bensoussan authored
27
28
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
29 How to build your own jQuery
30 ----------------------------
a1bb3ee from txt to markdown
Michael Bensoussan authored
31
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
32 First, clone a copy of the main jQuery git repo by running `git clone git://github.com/jquery/jquery.git`.
950b5d6 @jeresig Added in integrated JSLint checking against the jQuery source. Just r…
jeresig authored
33
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
34 Then, to get a complete, minified, jslinted version of jQuery, simply `cd` to the `jquery` directory and type
35 `make`. If you don't have Node installed and/or want to make a basic, uncompressed, unlinted version of jQuery, use
36 `make jquery` instead of `make`.
950b5d6 @jeresig Added in integrated JSLint checking against the jQuery source. Just r…
jeresig authored
37
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
38 The built version of jQuery will be put in the `dist/` subdirectory.
a1bb3ee from txt to markdown
Michael Bensoussan authored
39
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
40 To remove all built files, run `make clean`.
a1bb3ee from txt to markdown
Michael Bensoussan authored
41
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
42
43 Building to a different directory
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
44 ---------------------------------
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
45
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
46 If you want to build jQuery to a directory that is different from the default location, you can specify the PREFIX
47 directory: `make PREFIX=/home/jquery/test/ [command]`
a1bb3ee from txt to markdown
Michael Bensoussan authored
48
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
49 With this example, the output files would end up in `/home/jquery/test/dist/`.
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
50
51
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
52 Troubleshooting
53 ---------------
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
54
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
55 Sometimes, the various git repositories get into an inconsistent state where builds don't complete properly
56 (usually this results in the jquery.js or jquery.min.js being 0 bytes). If this happens, run `make clean`, then
57 run `make` again.
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
58
5dde3eb @azatoth Git for dummies
azatoth authored
59 Git for dummies
60 ---------------
61
62 As the source code is handled by the version control system Git, it's useful to know some features used.
63
64 ### Submodules ###
65
467747d @robmorgan Fixing typos in the README.md file
robmorgan authored
66 The repository uses submodules, which normally are handled directly by the Makefile, but sometimes you want to
5dde3eb @azatoth Git for dummies
azatoth authored
67 be able to work with them manually.
68
69 Following are the steps to manually get the submodules:
70
71 1. `git clone https://github.com/jquery/jquery.git`
72 2. `git submodule init`
73 3. `git submodule update`
74
75 Or:
76
77 1. `git clone https://github.com/jquery/jquery.git`
78 2. `git submodule update --init`
79
80 Or:
81
82 1. `git clone --recursive https://github.com/jquery/jquery.git`
83
84 If you want to work inside a submodule, it is possible, but first you need to checkout a branch:
85
86 1. `cd src/sizzle`
87 2. `git checkout master`
88
467747d @robmorgan Fixing typos in the README.md file
robmorgan authored
89 After you've committed your changes to the submodule, you'll update the jquery project to point to the new commit,
5dde3eb @azatoth Git for dummies
azatoth authored
90 but remember to push the submodule changes before pushing the new jquery commit:
91
92 1. `cd src/sizzle`
93 2. `git push origin master`
94 3. `cd ..`
95 4. `git add src/sizzle`
96 5. `git commit`
97
98 The makefile has some targets to simplify submodule handling:
99
100 #### `make update_submodules` ####
101
467747d @robmorgan Fixing typos in the README.md file
robmorgan authored
102 checks out the commit pointed to by jquery, but merges your local changes, if any. This target is executed
5dde3eb @azatoth Git for dummies
azatoth authored
103 when you are doing a normal `make`.
104
105 #### `make pull_submodules` ####
106
91d0398 @robmorgan Adding a full-stop
robmorgan authored
107 updates the content of the submodules to what is probably the latest upstream code.
5dde3eb @azatoth Git for dummies
azatoth authored
108
109 #### `make pull` ####
110
111 make a `make pull_submodules` and after that a `git pull`. if you have no remote tracking in your master branch, you can
112 execute this command as `make pull REMOTE=origin BRANCH=master` instead.
113
114 ### cleaning ###
115
116 If you want to purge your working directory back to the status of upstream, following commands can be used (remember everything you've worked on is gone after these):
117
118 1. `git reset --hard upstream/master`
119 2. `git clean -fdx`
120
121 ### rebasing ###
122
123 For feature/topic branches, you should always used the `--rebase` flag to `git pull`, or if you are usually handling many temporary "to be in a github pull request" branches, run following to automate this:
124
125 * `git config branch.autosetuprebase local` (see `man git-config` for more information)
126
127 ### handling merge conflicts ###
128
129 If you're getting merge conflicts when merging, instead of editing the conflicted files manually, you can use the feature
130 `git mergetool`. Even though the default tool `xxdiff` looks awful/old, it's rather useful.
131
132 Following are some commands that can be used there:
133
134 * `Ctrl + Alt + M` - automerge as much as possible
135 * `b` - jump to next merge conflict
136 * `s` - change the order of the conflicted lines
137 * `u` - undo an merge
138 * `left mouse button` - mark a block to be the winner
139 * `middle mouse button` - mark a line to be the winner
140 * `Ctrl + S` - save
141 * `Ctrl + Q` - quit
4e337f5 @dcneiner Updated README file with updated information for the Rake addtions
dcneiner authored
142
143 Questions?
144 ----------
a1bb3ee from txt to markdown
Michael Bensoussan authored
145
d503845 @csnover Replace build system with a faster new one that uses Node and UglifyJ…
csnover authored
146 If you have any questions, please feel free to ask on the
147 [Developing jQuery Core forum](http://forum.jquery.com/developing-jquery-core) or in #jquery on irc.freenode.net.
Something went wrong with that request. Please try again.