8 ### Download the sources
10 You should create a [Github](https://github.com/) account and
11 [fork the repository](https://help.github.com/articles/fork-a-repo) (you will
12 need one to create the pull request).
14 If you just want the get the source code, you can use git and do
15 `git clone https://github.com/Stuk/jszip.git` to get the sources. You can also
16 download the latest sources [here](https://github.com/Stuk/jszip/archive/master.zip).
18 ### Building the project
22 The dependencies are handled by npm, the first step is to run
23 `npm install` to get the dependencies.
24 JSZip uses Grunt to handle the build, [see here to install its CLI](http://gruntjs.com/getting-started).
26 Here are the interesting build commands :
28 * `grunt` will generate the final js file in dist/ and the minified version.
29 * `npm run test-node` will run the tests in nodejs.
30 * `npm run test-browser` will the tests in some browsers using SauceLabs, see
32 * `npm run test` will run the tests in nodejs and in the browser.
33 * `npm run lint` will use jshint the check the source code.
37 The documentation uses jekyll on gh-pages. To render the documentation, you
38 need to [install jekyll](http://jekyllrb.com/docs/installation/) and then run
39 `jekyll serve --baseurl ''`.
41 ### Testing the project
43 To test JSZip in nodejs, use `npm run test-node`.
45 To test JSZip in a browser, you can open the file `test/index.html` in the
46 browser you want to test. Don't forget to update the dist/ files with `grunt`.
48 You can also test JSZip in a lot of browsers at once with
49 [SauceLabs](https://saucelabs.com/). You will need a SauceLabs account and two
50 variables into your environment. On linux, just use
53 export SAUCE_USERNAME=your-saucelabs-username
54 export SAUCE_ACCESS_KEY=your-saucelabs-access-key
57 before running the `npm run test-browser` command.
59 ### Merging the changes
61 If you have tested bug fixes or new features, you can open a
62 [pull request](https://help.github.com/articles/using-pull-requests) on Github.