Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Use grunt and bower packages as local dependencies #1433

Closed
wants to merge 1 commit into from

4 participants

Oleg Gaidarenko Timmy Willison Dave Methvin Michał Gołębiowski
Oleg Gaidarenko
Collaborator

What this PR proposes:

  • Use grunt-bower-task package to get control of bower modules
  • Remove grunt-cli and bower global dependencies (bower as local package corresponds with previous item). Wait, global packages as local ones? It's not supported! It's confusing! It's not recommended! It's madness! Turn's out, it's perfectly fine.
  • Add build command to package.json, so jQuery could be builded with one command, but don't forget to emphasizes about grunt commands as a preferable way to work with jQuery
  • Update readme to reflect these changes

/cc @timmywil

Michał Gołębiowski mzgol commented on the diff
.gitignore
((5 lines not shown))
node_modules
-bower_components
Michał Gołębiowski Collaborator
mzgol added a note

Why the rename?

Oleg Gaidarenko Collaborator

It's not a rename, if it was, i would edit the .bowerrc file. bower_components contains all modules files, this folder will be cleaned up after bower install, bower_modules on the other hand, contains only essentials.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Timmy Willison
Collaborator

Turn's out, it's perfectly fine.

I don't think npm saying that it works is the same thing as saying that it's perfectly fine, but I've succumbed at this point.

Timmy Willison
Collaborator

I don't see anything I would change off hand.

Dave Methvin
Owner

Okay okay, you made your point! :smile: Land this sucker.

Timmy Willison timmywil closed this in ac7ff97
Oleg Gaidarenko
Collaborator

Hm, looks like my name was thrown out from the landing commit, oh well.

Timmy Willison
Collaborator

@markelog woops! Sorry Oleg! Forgot to set --author. I'm usually more careful. :(

Timmy Willison
Collaborator

@markelog next time I write something, I'll make you the author ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Nov 13, 2013
  1. Oleg Gaidarenko
This page is out of date. Refresh to see the latest.
2  .gitignore
View
@@ -9,5 +9,5 @@ dist
dist/.destination.json
dist/.sizecache.json
build/.sizecache.json
+bower_modules
node_modules
-bower_components
Michał Gołębiowski Collaborator
mzgol added a note

Why the rename?

Oleg Gaidarenko Collaborator

It's not a rename, if it was, i would edit the .bowerrc file. bower_components contains all modules files, this folder will be cleaned up after bower install, bower_modules on the other hand, contains only essentials.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
2  .jshintignore
View
@@ -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
2  .travis.yml
View
@@ -1,5 +1,3 @@
language: node_js
node_js:
- '0.10'
-before_install:
-- npm install grunt-cli bower -g
12 Gruntfile.js
View
@@ -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
@@ -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" ]
38 README.md
View
@@ -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
@@ -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
12 bower.json
View
@@ -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",
13 build/bower-install.js
View
@@ -1,13 +0,0 @@
-var which = require( "which" ),
- spawn = require( "child_process" ).spawn;
-
-try {
- which.sync( "bower" );
-} catch( error ) {
- console.error( "Bower must be installed to build jQuery." );
- console.error( "Please install Bower by running the following command:" );
- console.error( "npm install -g bower" );
- process.exit( 0 );
-}
-
-spawn( "bower", [ "install" ], { stdio: "inherit" } );
2  build/tasks/build.js
View
@@ -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
8 package.json
View
@@ -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",
@@ -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 test/data/testinit.js
View
@@ -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();
6 test/index.html
View
@@ -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 -->
@@ -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>
2  test/jquery.js
View
@@ -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";
Something went wrong with that request. Please try again.