module.exports = function(grunt) { // Project configuration. grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), copy: { release: { files: [ { src: "node_modules/jquery/dist/jquery.min.js", dest: "htdocs/jquery.min.js" }, { src: "node_modules/jquery-toast-plugin/dist/jquery.toast.min.js", dest: "htdocs/jquery.toast.min.js" }, { src: "node_modules/jquery-toast-plugin/dist/jquery.toast.min.css", dest: "htdocs/jquery.toast.min.css" }, { src: "node_modules/mustache/mustache.min.js", dest: "htdocs/mustache.min.js" }, { cwd: "js/templates/", src:"*.mst", dest: "htdocs/", expand: true}, { src: "node_modules/mustache/mustache.min.js", dest: "htdocs/mustache.min.js" }, ] }, static: { files: [ { cwd: "static/", src: "**/*", dest: "htdocs/", expand:true}, ] } }, ts: { default: { src: ['ts/**/*.ts'], outDir: 'tmp/', options: { module: 'none', moduleResolution: 'node', sourceMap: true, target: 'es5', rootDir: ['ts'] } } }, uglify: { options: { beautify: true, mangle:false, sourceMap: false }, bootstrap: { files: { 'htdocs/bootstrap.min.js': ['tmp/view.js','tmp/*.js'], } }, }, watch: { jsbootstrapts: { files: ['ts/*.ts'], tasks: ['ts', 'newer:uglify:bootstrap'] }, lessdefault: { files: ['less/*.less'], tasks: ['less'] }, concat: { files: ['templates/base/*'], tasks: ['concat'] }, jstemplate: { files: ['templates/*.mst'], tasks: ['copy'] }, json_merge: { files: ["lang/*/*.json"], tasks: ['json_merge'] }, static: { files: ['static/**/*'], tasks: ['copy:static'] }, }, less: { default: { options: { "strictImports": true, "compress": true }, files: { "htdocs/default.css": "less/default.less" } }, }, concat: { options: { sourceMap: false }, base: { src: ['templates/base/*'], dest: 'htdocs/base.mst'}, }, json_merge: { options: { replacer: null, space: " " }, en: { files: [ { 'htdocs/en_main.json': ['lang/en/generic.json','lang/en/menu.json', 'lang/en/wifi.json', 'lang/en/error.json', 'lang/en/mapping.json', 'lang/en/main.json', 'lang/en/update.json'] }, ] } }, }); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-newer'); grunt.loadNpmTasks('grunt-json-merge'); grunt.loadNpmTasks("grunt-ts"); // Default task(s). grunt.registerTask('default', ['less', 'concat', 'ts', 'newer:uglify', 'json_merge', 'copy', 'watch']); grunt.registerTask('release', ['less', 'concat', 'ts', 'uglify', 'json_merge', 'copy']); };