105 lines
2.9 KiB
JavaScript
Executable File
105 lines
2.9 KiB
JavaScript
Executable File
module.exports = function (grunt) {
|
|
'use strict';
|
|
|
|
grunt.initConfig({
|
|
//Get some details from the package.json
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
banner: '/*!\n' +
|
|
' * <%= pkg.config.name %> - version <%= pkg.version %> \n' +
|
|
' * <%= pkg.description %>\n' +
|
|
' *\n' +
|
|
' * <%= pkg.author %>\n' +
|
|
' * Build at <%= grunt.template.today("dd-mm-yyyy") %>\n' +
|
|
' * Released under MIT License \n' +
|
|
' */\n',
|
|
usebanner: {
|
|
dist: {
|
|
options: {
|
|
position: 'top',
|
|
banner: '<%= banner %>'
|
|
},
|
|
files: {
|
|
src: [ 'build/*.js' ]
|
|
}
|
|
}
|
|
},
|
|
//Typescript settings per build
|
|
ts: {
|
|
options: {
|
|
module: 'amd',
|
|
target: 'es5',
|
|
sourceMap: true,
|
|
declaration: true,
|
|
noImplicitAny: true
|
|
},
|
|
dist: {
|
|
src: ['ts/**/*.ts'],
|
|
dest: 'build/<%= pkg.config.name %>.js'
|
|
}
|
|
},
|
|
watch: {
|
|
files: ['ts/**/*.ts'],
|
|
tasks: ['ts'],
|
|
options: {
|
|
livereload: true
|
|
}
|
|
},
|
|
connect: {
|
|
server: {
|
|
options: {
|
|
base: ['./build', './example'],
|
|
port: 8080
|
|
}
|
|
}
|
|
},
|
|
uglify: {
|
|
options: {
|
|
compress: {
|
|
sequences: true,
|
|
dead_code: true,
|
|
conditionals: true,
|
|
booleans: true,
|
|
unused: true,
|
|
if_return: true,
|
|
join_vars: true,
|
|
drop_console: true
|
|
},
|
|
mangle: true,
|
|
beautify: false
|
|
},
|
|
dist: {
|
|
files: {
|
|
'build/<%= pkg.config.name %>.min.js': [
|
|
'build/<%= pkg.config.name %>.js'
|
|
]
|
|
}
|
|
}
|
|
},
|
|
clean: {
|
|
dist: ['build']
|
|
}
|
|
});
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
grunt.loadNpmTasks('grunt-banner');
|
|
grunt.loadNpmTasks('grunt-ts');
|
|
grunt.loadNpmTasks('grunt-contrib-connect');
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
|
|
//dist Build
|
|
grunt.registerTask('dist', [
|
|
'clean:dist', //Clean the dist folder
|
|
'ts:dist',//Run typescript on the preprocessed files, for dist (client)
|
|
'uglify:dist', //Minify everything
|
|
'usebanner:dist' //Minify everything
|
|
]);
|
|
|
|
grunt.registerTask('dev', [
|
|
'ts:dist',
|
|
'connect',
|
|
'watch'
|
|
]);
|
|
|
|
};
|