Skip to content

Commit

Permalink
Use grunt and bower packages as local dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
markelog committed Nov 13, 2013
1 parent 1cecf64 commit 9b55199
Show file tree
Hide file tree
Showing 12 changed files with 59 additions and 44 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Expand Up @@ -9,5 +9,5 @@ dist
dist/.destination.json
dist/.sizecache.json
build/.sizecache.json
bower_modules
node_modules
bower_components
2 changes: 1 addition & 1 deletion .jshintignore
@@ -1,7 +1,7 @@
src/intro.js
src/outro.js
test/qunit/**
test/data/jquery-1.9.1.js
bower_modules
test/data/badcall.js
test/data/badjson.js
test/data/json_obj.js
Expand Down
2 changes: 0 additions & 2 deletions .travis.yml
@@ -1,5 +1,3 @@
language: node_js
node_js:
- '0.10'
before_install:
- npm install grunt-cli bower -g
12 changes: 12 additions & 0 deletions Gruntfile.js
Expand Up @@ -10,6 +10,7 @@ module.exports = function( grunt ) {
}

var gzip = require( "gzip-js" ),
path = require( "path" ),
srcHintOptions = readOptionalJSON( "src/.jshintrc" );

// The concatenated file won't pass onevar
Expand Down Expand Up @@ -46,6 +47,17 @@ module.exports = function( grunt ) {
}
}
},
bower: {
install: {
options: {
targetDir: "bower_modules",
cleanup: true,
layout: function( type ) {
return path.join( type );
}
}
}
},
jsonlint: {
pkg: {
src: [ "package.json" ]
Expand Down
38 changes: 18 additions & 20 deletions README.md
Expand Up @@ -29,39 +29,37 @@ if you swing that way. Easy-peasy.
How to build your own jQuery
----------------------------

First, clone a copy of the main jQuery git repo by running:
Clone a copy of the main jQuery git repo by running:

```bash
git clone git://github.com/jquery/jquery.git
```

Install the [grunt-cli](http://gruntjs.com/getting-started#installing-the-cli) and [bower](http://bower.io/) packages if you haven't before. These should be done as global installs:

Enter the jquery directory and run the build script:
```bash
npm install -g grunt-cli bower
cd jquery && npm run-script build
```
The built version of jQuery will be put in the `dist/` subdirectory, along with the minified copy and associated map file.

Make sure you have `grunt` and `bower` installed by testing:
If you want create custom build or help with jQuery development, it would be better to install <a href="https://github.com/gruntjs/grunt-cli">grunt command line interface</a> as a global package:

```bash
grunt -version
bower -version
```

Enter the jquery directory and install the Node and Bower dependencies, this time *without* specifying a global(-g) install:

```bash
cd jquery && npm install
npm install -g grunt-cli
```
Make sure you have `grunt` installed by testing:
```
grunt -v
```

Then, to get a complete, minified (w/ Uglify.js), linted (w/ JSHint) version of jQuery, type the following:

```bash
Now by running `grunt` command, in the jquery directory, you could build full version of jQuery, just like with `npm run-script build` command:
```
grunt
```

The built version of jQuery will be put in the `dist/` subdirectory, along with the minified copy and associated map file.

There are many other tasks avaliable for jQuery Core:
```
grunt -help
```

### Modules

Expand Down Expand Up @@ -137,10 +135,10 @@ Running the Unit Tests
Make sure you have the necessary dependencies:

```bash
bower install
npm install
```

Start `grunt watch` to auto-build jQuery as you work:
Start `grunt watch` or `npm start` to auto-build jQuery as you work:

```bash
cd jquery && grunt watch
Expand Down
12 changes: 12 additions & 0 deletions bower.json
Expand Up @@ -19,6 +19,18 @@
"requirejs": "~2.1.8",
"qunit": "~1.12.0"
},
"exportsOverride": {
"sizzle": {
"sizzle": "."
},

"requirejs": {
"requirejs": "require.js"
},
"qunit": {
"qunit": "qunit"
}
},
"keywords": [
"jquery",
"javascript",
Expand Down
13 changes: 0 additions & 13 deletions build/bower-install.js

This file was deleted.

2 changes: 1 addition & 1 deletion build/tasks/build.js
Expand Up @@ -26,7 +26,7 @@ module.exports = function( grunt ) {
endFile: "src/outro.js"
},
paths: {
sizzle: "../bower_components/sizzle/dist/sizzle"
sizzle: "../bower_modules/sizzle/dist/sizzle"
},
rawText: {},
onBuildWrite: convert
Expand Down
8 changes: 7 additions & 1 deletion package.json
Expand Up @@ -30,6 +30,8 @@
"devDependencies": {
"archiver": "~0.4.10",
"grunt": "~0.4.1",
"grunt-bower-task": "~0.3.2",
"grunt-cli": "~0.1.11",
"grunt-compare-size": "~0.4.0",
"grunt-contrib-jshint": "~0.7.0",
"grunt-contrib-uglify": "~0.2.7",
Expand All @@ -44,7 +46,11 @@
"which": "~1.0.5"
},
"scripts": {
"install": "node build/bower-install",
"build": "npm install && grunt",

"install": "grunt bower",

"start": "grunt watch",
"test": "grunt"
}
}
4 changes: 3 additions & 1 deletion test/data/testinit.js
Expand Up @@ -297,8 +297,10 @@ this.loadTests = function() {
if ( dep ) {
require( [ dep ], loadDep );
} else {


// Subproject tests must be last because they replace our test fixture
testSubproject( "Sizzle", "../bower_components/sizzle/test/", /^unit\/.*\.js$/, function() {
testSubproject( "Sizzle", "../bower_modules/sizzle/test/", /^unit\/.*\.js$/, function() {
// Call load to build module filter select element
QUnit.load();

Expand Down
6 changes: 3 additions & 3 deletions test/index.html
Expand Up @@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title>jQuery Test Suite</title>
<link rel="Stylesheet" media="screen" href="../bower_components/qunit/qunit/qunit.css" />
<link rel="Stylesheet" media="screen" href="../bower_modules/qunit/qunit.css" />
<link rel="Stylesheet" media="screen" href="data/testsuite.css" />
<!-- Includes -->

Expand All @@ -14,8 +14,8 @@
-->
<script src="data/jquery-1.9.1.js"></script>

<script src="../bower_components/qunit/qunit/qunit.js"></script>
<script src="../bower_components/requirejs/require.js"></script>
<script src="../bower_modules/qunit/qunit.js"></script>
<script src="../bower_modules/requirejs/require.js"></script>
<!-- See testinit for the list of tests -->
<script src="data/testinit.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion test/jquery.js
Expand Up @@ -19,7 +19,7 @@
require.config({
baseUrl: path,
paths: {
sizzle: path + "bower_components/sizzle/dist/sizzle"
sizzle: path + "bower_modules/sizzle/dist/sizzle"
}
});
src = "src/jquery";
Expand Down

0 comments on commit 9b55199

Please sign in to comment.