0
0
mirror of https://github.com/Doodle3D/doodle3d-connect.git synced 2024-12-26 02:23:48 +01:00
doodle3d-connect/Gruntfile.js
2017-06-20 21:45:29 +02:00

180 lines
4.7 KiB
JavaScript

/*global module:false*/
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',
less: {
development: {
src: "less/*.less",
dest: ".tmp/<%= pkg.name %>.css"
}
},
concat: {
js: {
src: [
'js/libs/jquery-1.11.0.min.js', // make sure it's first
'js/libs/*.js',
'js/libs/jquery.mobile/*.min.js',
'js/api/*.js',
'js/*.js',
// make sure we put main.js last
'!js/main.js',
'js/main.js',
],
dest: 'www/js/<%= pkg.name %>.js'
},
less: {
src: [
'js/libs/jquery.mobile/jquery.mobile-1.4.2.css',
'less/*.css',
'.tmp/<%= pkg.name %>.css'
],
dest: 'www/css/<%= pkg.name %>.css' /* to css so it's replaced */
}
},
autoprefixer: {
options: {
browsers: ['> 1%', 'last 2 versions', 'ie 8', 'ie 9', 'ff 17', 'opera 12.1']
},
// prefix all specified files and save them separately
single_file: {
options: {},
// expand: true,
// flatten: true,
src: 'www/css/<%= pkg.name %>.css',
dest: 'www/css/<%= pkg.name %>.css'
}
},
cssmin: {
minify: {
expand: true,
cwd: 'www/css/',
src: ['*.css', '!*.min.css'],
dest: 'www/css/',
ext: '.min.css'
}
},
uglify: {
options: {
// banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
mangle: true,
beautify: false,
compress: {},
// report: 'min',
preserveComments: 'some'
},
js: {
files: {
'www/js/<%= pkg.name %>.min.js' : ['www/js/<%= pkg.name %>.js']
}
},
/*jslibs: {
cwd: "js/libs/",
// src: ['js/libs/*.js', '!js/libs/*.min.js'], // source files mask
src: ['*.js', '!*.min.js'], // source files mask
dest: 'www/js/libs/', // destination folder
expand: true, // allow dynamic building
flatten: true, // remove all unnecessary nesting
ext: '.min.js' // replace .js to .min.js
// files: {
// 'www/js/<%= pkg.name %>.min.js' : ['www/js/<%= pkg.name %>.js']
// }
}*/
},
jshint: {
options: {
globals: {
jQuery: true,
$: true,
console: false,
d3d: true,
ConnectAPI: true,
NetworkAPI: true,
InfoAPI: true,
ConfigAPI: true,
PrinterAPI: true,
UpdateAPI:true,
ServerAPI:true,
addToHomescreen: true
},
browser: true,
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
unused: false,
boss: true,
eqnull: true
},
// gruntfile: {
// src: 'Gruntfile.js'
// },
// lib_test: {
// src: ['www/js/*.js', '!www/js/<%= pkg.name %>.js', '!www/js/<%= pkg.name %>.min.js']
// }
src: ['js/**.js'],
},
clean: {
main: {
src: "www/css/images"
}
},
copy: {
main: {
expand: true,
nonull: true,
cwd: "js/libs/jquery.mobile/images/",
src: "**",
dest: "www/css/images/",
filter: grunt.file.exists
}
},
watch: {
javascript: {
files: ["js/**", '!www/js/<%= pkg.name %>.min.js', '!www/js/<%= pkg.name %>.js'],
tasks: ["jshint", "concat:js", "uglify:js"]
},
styles: {
files: ["less/**"],
tasks: ["less", "autoprefixer", "concat:less", "cssmin"]
}
},
});
// These plugins provide necessary tasks.
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-autoprefixer');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
// Default task.
grunt.registerTask('default', [
'less',
'autoprefixer',
'concat',
'cssmin',
'uglify',
'jshint',
'clean',
'copy',
'watch'
]);
};