You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
4.3 KiB
173 lines
4.3 KiB
/* jshint node: true */
|
|
|
|
function mountFolder (connect, dir) {
|
|
return connect.static(require('path').resolve(dir));
|
|
}
|
|
|
|
module.exports = function(grunt) {
|
|
"use strict";
|
|
|
|
// Project configuration.
|
|
grunt.initConfig({
|
|
|
|
// Metadata.
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
banner: '/*! \n' +
|
|
' * <%= pkg.name %> v<%= pkg.version %>\n' +
|
|
' * <%= pkg.repository.url %> \n' +
|
|
' * \n' +
|
|
' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
|
|
' * Licensed under the <%= pkg.licenses[0].type %> license\n' +
|
|
' * \n' +
|
|
' * \n' +
|
|
' * Including Hammer.js@1.0.6dev, http://eightmedia.github.com/hammer.js \n' +
|
|
' */ \n',
|
|
|
|
functionalScope: {
|
|
header: '+function ($) {\n' +
|
|
' "use strict";\n' +
|
|
'\n' +
|
|
' if (!("ontouchstart" in window || navigator.msMaxTouchPoints)) return false \n\n',
|
|
footer: '}(window.jQuery);'
|
|
},
|
|
|
|
jshint: {
|
|
options: {
|
|
jshintrc: '.jshintrc'
|
|
},
|
|
gruntfile: {
|
|
src: 'Gruntfile.js'
|
|
},
|
|
src: {
|
|
src: ['src/js/*.js']
|
|
},
|
|
test: {
|
|
src: ['src/js/tests/unit/*.js']
|
|
}
|
|
},
|
|
|
|
concat: {
|
|
options: {
|
|
banner: '<%= functionalScope.header %>',
|
|
footer: '<%= functionalScope.footer %>',
|
|
stripBanners: false
|
|
},
|
|
js: {
|
|
src: [
|
|
'src/js/transition.js',
|
|
'src/js/touch-carousel.js',
|
|
],
|
|
dest: 'dist/js/<%= pkg.name %>.js'
|
|
}
|
|
},
|
|
|
|
uglify: {
|
|
options: {
|
|
banner: '<%= banner %>',
|
|
report: 'min'
|
|
},
|
|
js: {
|
|
src: ['<%= concat.js.dest %>', 'vendor/hammerjs/dist/jquery.hammer.js',],
|
|
dest: 'dist/js/<%= pkg.name %>.js'
|
|
}
|
|
},
|
|
|
|
less: {
|
|
dev: {
|
|
options: {
|
|
compile: true,
|
|
dumpLineNumbers: 'comments'
|
|
},
|
|
src: ['src/less/*.less'],
|
|
dest: 'dist/css/<%= pkg.name %>.css'
|
|
},
|
|
prod: {
|
|
options: {
|
|
compile: true,
|
|
banner: '<%= banner %>',
|
|
compress: false
|
|
},
|
|
src: ['src/less/*.less'],
|
|
dest: 'dist/css/<%= pkg.name %>.css'
|
|
}
|
|
},
|
|
|
|
cssmin: {
|
|
prod: {
|
|
options: {
|
|
banner: '/* <%= pkg.name %> v<%= pkg.version %>, (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %> */',
|
|
report: 'min'
|
|
},
|
|
files: {
|
|
'dist/css/<%= pkg.name %>.css': '<%= less.prod.dest %>'
|
|
}
|
|
}
|
|
},
|
|
|
|
qunit: {
|
|
//options: {
|
|
// inject: 'src/js/tests/unit/phantom.js'
|
|
//},
|
|
options: {
|
|
//'phantomPath': 'node_modules/phantomjs/lib/phantom/phantomjs.exe',
|
|
'--local-to-remote-url-access': 'no',
|
|
'--proxy': '127.0.01',
|
|
timeout: 5000,
|
|
console: true
|
|
},
|
|
test: {
|
|
options: {
|
|
urls: ['http://127.0.0.1:<%= connect.test.options.port %>/index.html']
|
|
}
|
|
}
|
|
//files: ['src/js/tests/index.html']
|
|
},
|
|
connect: {
|
|
test: {
|
|
options: {
|
|
port: 9002,
|
|
hostname: '127.0.0.1',
|
|
middleware: function (connect) {
|
|
return [
|
|
mountFolder(connect, 'dist'),
|
|
mountFolder(connect, 'src/js/tests'),
|
|
];
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
watch: {
|
|
less: {
|
|
files: 'src/less/*.less',
|
|
tasks: ['less:dev']
|
|
},
|
|
js: {
|
|
files: 'src/js/*.js',
|
|
tasks: ['jshint', 'concat', 'uglify']
|
|
}
|
|
},
|
|
bump: {
|
|
options: {
|
|
commitFiles: ['-a'],
|
|
pushTo: 'git@github.com:ixisio/bootstrap-touch-carousel.git'
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
// These plugins provide necessary tasks.
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
grunt.loadNpmTasks('grunt-contrib-qunit');
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
grunt.loadNpmTasks('grunt-contrib-less');
|
|
grunt.loadNpmTasks('grunt-contrib-connect');
|
|
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
|
grunt.loadNpmTasks('grunt-bump');
|
|
|
|
grunt.registerTask('default', ['watch']);
|
|
grunt.registerTask('test', ['jshint', 'connect:test', 'qunit:test']);
|
|
grunt.registerTask('build', ['jshint', 'test', 'concat', 'uglify', 'less:prod', 'cssmin']);
|
|
};
|
|
|