1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-08-11 08:04:59 +02:00

Merge pull request #9050 from jonschlinkert/3.0.0-wip

organizes the Gruntfile a bit and makes better use of Grunt conventions
This commit is contained in:
Mark Otto
2013-08-03 16:25:12 -07:00

View File

@@ -1,9 +1,11 @@
/* jshint node: true */ /* jshint node: true */
module.exports = function(grunt) { module.exports = function(grunt) {
"use strict"; "use strict";
// Project configuration. // Project configuration.
grunt.initConfig({ grunt.initConfig({
// Metadata. // Metadata.
pkg: grunt.file.readJSON('package.json'), pkg: grunt.file.readJSON('package.json'),
banner: '/**\n' + banner: '/**\n' +
@@ -12,20 +14,12 @@ module.exports = function(grunt) {
'* <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' + '* <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' +
'*/\n', '*/\n',
jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n', jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n',
// Task configuration. // Task configuration.
clean: { clean: {
dist: ['dist'] dist: ['dist']
}, },
concat: {
options: {
banner: '<%= banner %><%= jqueryCheck %>',
stripBanners: false
},
bootstrap: {
src: ['js/transition.js', 'js/alert.js', 'js/button.js', 'js/carousel.js', 'js/collapse.js', 'js/dropdown.js', 'js/modal.js', 'js/tooltip.js', 'js/popover.js', 'js/scrollspy.js', 'js/tab.js', 'js/affix.js'],
dest: 'dist/js/<%= pkg.name %>.js'
}
},
jshint: { jshint: {
options: { options: {
jshintrc: 'js/.jshintrc' jshintrc: 'js/.jshintrc'
@@ -40,22 +34,27 @@ module.exports = function(grunt) {
src: ['js/tests/unit/*.js'] src: ['js/tests/unit/*.js']
} }
}, },
recess: { concat: {
options: { options: {
compile: true banner: '<%= banner %><%= jqueryCheck %>',
stripBanners: false
}, },
bootstrap: { bootstrap: {
files: { src: [
'dist/css/bootstrap.css': ['less/bootstrap.less'] 'js/transition.js',
} 'js/alert.js',
}, 'js/button.js',
min: { 'js/carousel.js',
options: { 'js/collapse.js',
compress: true 'js/dropdown.js',
}, 'js/modal.js',
files: { 'js/tooltip.js',
'dist/css/bootstrap.min.css': ['less/bootstrap.less'] 'js/popover.js',
} 'js/scrollspy.js',
'js/tab.js',
'js/affix.js'
],
dest: 'dist/js/<%= pkg.name %>.js'
} }
}, },
uglify: { uglify: {
@@ -63,11 +62,28 @@ module.exports = function(grunt) {
banner: '<%= banner %>' banner: '<%= banner %>'
}, },
bootstrap: { bootstrap: {
files: { src: ['<%= concat.bootstrap.dest %>'],
'dist/js/<%= pkg.name %>.min.js': ['<%= concat.bootstrap.dest %>'] dest: 'dist/js/<%= pkg.name %>.min.js'
}
} }
}, },
recess: {
options: {
compile: true
},
bootstrap: {
src: ['less/bootstrap.less'],
dest: 'dist/css/<%= pkg.name %>.css'
},
min: {
options: {
compress: true
},
src: ['less/bootstrap.less'],
dest: 'dist/css/<%= pkg.name %>.min.css'
}
},
qunit: { qunit: {
options: { options: {
inject: 'js/tests/unit/phantom.js' inject: 'js/tests/unit/phantom.js'
@@ -82,6 +98,7 @@ module.exports = function(grunt) {
} }
} }
}, },
watch: { watch: {
src: { src: {
files: '<%= jshint.src.src %>', files: '<%= jshint.src.src %>',
@@ -100,12 +117,12 @@ module.exports = function(grunt) {
// These plugins provide necessary tasks. // These plugins provide necessary tasks.
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-qunit'); grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-recess'); grunt.loadNpmTasks('grunt-recess');