jQuery JavaScript Library


jQuery — New Wave JavaScript

Contribution Guides

In the spirit of open source software development, jQuery always encourages community code contribution. To help you get started and before you jump into writing code, be sure to read these important contribution guidelines thoroughly:

References to issues/PRs

GitHub issues/PRs are usually referenced via gh-NUMBER, where NUMBER is the numerical ID of the issue/PR. You can find such an issue/PR under https://github.com/jquery/jquery/issues/NUMBER.

jQuery has used a different bug tracker - based on Trac - in the past, available under bugs.jquery.com. It is being kept in read only mode so that referring to past discussions is possible. When jQuery source references one of those issues, it uses the patterntrac-NUMBER, where NUMBER is the numerical ID of the issue. You can find such an issue under https://bugs.jquery.com/ticket/NUMBER.

Environments in which to use jQuery

- jQuery also supports Node, browser extensions, and other non-browser environments.

What you need to build your own jQuery

To build jQuery, you need to have the latest Node.js/npm and git 1.7 or later. Earlier versions might work, but are not supported.

For Windows, you have to download and install git and Node.js.

macOS users should install Homebrew. Once Homebrew is installed, runbrew install git to install git,
and brew install node to install Node.js.

Linux/BSD users should use their appropriate package managers to install git and Node.js, or build from source
if you swing that way. Easy-peasy.

How to build your own jQuery

Then, enter the jquery directory and run the build script:
  1. ``` sh
  2. cd jquery && npm run build
  3. ```
The built version of jQuery will be put in the dist/ subdirectory, along with the minified copy and associated map file.

If you want to create custom build or help with jQuery development, it would be better to install grunt command line interface as a global package:

  1. ```
  2. npm install -g grunt-cli
  3. ```
Make sure you have grunt installed by testing:
  1. ```
  2. grunt -V
  3. ```

Now by running the grunt command, in the jquery directory, you can build a full version of jQuery, just like with an npm run build command:
  1. ```
  2. grunt
  3. ```

There are many other tasks available for jQuery Core:
  1. ```
  2. grunt -help
  3. ```


Special builds can be created that exclude subsets of jQuery functionality.
This allows for smaller custom builds when the builder is certain that those parts of jQuery are not being used.
For example, an app that only used JSONP for $.ajax() and did not need to calculate offsets or positions of elements could exclude the offset and ajax/xhr modules.

Any module may be excluded except for core, and selector. To exclude a module, pass its path relative to the src folder (without the .js extension).

Some example modules that can be excluded are:

- ajax: All AJAX functionality: $.ajax(), $.get(), $.post(), $.ajaxSetup(), .load(), transports, and ajax event shorthands such as .ajaxStart().
- ajax/xhr: The XMLHTTPRequest AJAX transport only.
- **ajax/script**: The `