178 lines
5.5 KiB
JavaScript
178 lines
5.5 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
module.exports = function(grunt) {
|
||
|
|
||
|
// Project configuration.
|
||
|
grunt.initConfig({
|
||
|
// Metadata.
|
||
|
pkg: grunt.file.readJSON('package.json'),
|
||
|
banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' + '<%= grunt.template.today("yyyy-mm-dd") %>\n' + '<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' + '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */\n',
|
||
|
// Task configuration.
|
||
|
|
||
|
// -- clean config ----------------------------------------------------------=
|
||
|
clean: {
|
||
|
files: ['dist']
|
||
|
},
|
||
|
|
||
|
// -- concat config ----------------------------------------------------------
|
||
|
concat: {
|
||
|
options: {
|
||
|
banner: '<%= banner %>',
|
||
|
stripBanners: true,
|
||
|
process: true
|
||
|
},
|
||
|
dist: {
|
||
|
src: [
|
||
|
'src/intro.js',
|
||
|
'src/support.js',
|
||
|
'src/setup.js',
|
||
|
'src/util.js',
|
||
|
'src/defaults.js',
|
||
|
'src/step.js',
|
||
|
'src/public.js',
|
||
|
'src/bind.js',
|
||
|
'src/outro.js'
|
||
|
],
|
||
|
dest: 'dist/jquery-wizard.js'
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// -- uglify config ----------------------------------------------------------
|
||
|
uglify: {
|
||
|
options: {
|
||
|
banner: '<%= banner %>'
|
||
|
},
|
||
|
dist: {
|
||
|
src: '<%= concat.dist.dest %>',
|
||
|
dest: 'dist/jquery-wizard.min.js'
|
||
|
},
|
||
|
},
|
||
|
|
||
|
// -- jshint config ----------------------------------------------------------
|
||
|
jshint: {
|
||
|
gruntfile: {
|
||
|
options: {
|
||
|
jshintrc: '.jshintrc'
|
||
|
},
|
||
|
src: 'Gruntfile.js'
|
||
|
},
|
||
|
dist: {
|
||
|
options: {
|
||
|
jshintrc: 'src/.jshintrc'
|
||
|
},
|
||
|
src: ["<%= concat.dist.dest %>"]
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// -- jsbeautifier config -----------------------------------------------------
|
||
|
jsbeautifier: {
|
||
|
dist: {
|
||
|
src: ["<%= concat.dist.dest %>"]
|
||
|
},
|
||
|
source: {
|
||
|
src: ['Gruntfile.js', "src/*.js"],
|
||
|
},
|
||
|
options: {
|
||
|
"indent_size": 4,
|
||
|
"indent_char": " ",
|
||
|
"indent_level": 0,
|
||
|
"indent_with_tabs": false,
|
||
|
"preserve_newlines": true,
|
||
|
"max_preserve_newlines": 10,
|
||
|
"jslint_happy": false,
|
||
|
"brace_style": "collapse",
|
||
|
"keep_array_indentation": false,
|
||
|
"keep_function_indentation": false,
|
||
|
"space_before_conditional": true,
|
||
|
"eval_code": false,
|
||
|
"indent_case": false,
|
||
|
"unescape_strings": false
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// -- less config ----------------------------------------------------------
|
||
|
less: {
|
||
|
dist: {
|
||
|
files: {
|
||
|
'css/wizard.css': ['less/wizard.less']
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// -- autoprefixer config ----------------------------------------------------------
|
||
|
autoprefixer: {
|
||
|
options: {
|
||
|
browsers: [
|
||
|
"Android 2.3",
|
||
|
"Android >= 4",
|
||
|
"Chrome >= 20",
|
||
|
"Firefox >= 24",
|
||
|
"Explorer >= 8",
|
||
|
"iOS >= 6",
|
||
|
"Opera >= 12",
|
||
|
"Safari >= 6"
|
||
|
]
|
||
|
},
|
||
|
src: {
|
||
|
expand: true,
|
||
|
cwd: 'css/',
|
||
|
src: ['*.css', '!*.min.css'],
|
||
|
dest: 'css/'
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// -- watch config ------------------------------------------------------------
|
||
|
watch: {
|
||
|
gruntfile: {
|
||
|
files: '<%= jshint.gruntfile.src %>',
|
||
|
tasks: ['jshint:gruntfile']
|
||
|
},
|
||
|
src: {
|
||
|
files: '<%= concat.dist.src %>',
|
||
|
tasks: ['dist']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// -- csscomb config ---------------------------------------------------------
|
||
|
csscomb: {
|
||
|
options: {
|
||
|
config: '.csscomb.json'
|
||
|
},
|
||
|
dist: {
|
||
|
files: {
|
||
|
'css/wizard.css': ['css/wizard.css'],
|
||
|
},
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// -- replace config ---------------------------------------------------------
|
||
|
replace: {
|
||
|
bower: {
|
||
|
src: ['bower.json'],
|
||
|
overwrite: true, // overwrite matched source files
|
||
|
replacements: [{
|
||
|
from: /("version": ")([0-9\.]+)(")/g,
|
||
|
to: "$1<%= pkg.version %>$3"
|
||
|
}]
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Load npm plugins to provide necessary tasks.
|
||
|
require('load-grunt-tasks')(grunt, {
|
||
|
pattern: ['grunt-*']
|
||
|
});
|
||
|
|
||
|
// Default task.
|
||
|
grunt.registerTask('default', ['dist', 'jshint']);
|
||
|
|
||
|
grunt.registerTask('dist', ['clean', 'concat', 'jsbeautifier:dist', 'uglify']);
|
||
|
grunt.registerTask('js', ['jsbeautifier', 'jshint']);
|
||
|
|
||
|
grunt.registerTask('version', [
|
||
|
'replace:bower'
|
||
|
]);
|
||
|
|
||
|
grunt.registerTask('css', ['less', 'csscomb', 'autoprefixer']);
|
||
|
};
|