UNPKG

sense-extension-recipes

Version:

Recipes on working with Qlik Sense Visualization Extensions.

113 lines (84 loc) 3.47 kB
/*global module,define,require */ /*jshint camelcase: false */ var fs = require( "fs" ); module.exports = function ( grunt ) { grunt.option['debug'] = false; var cfg = {}; // parse all configured tasks automatically: fs.readdirSync( "./" ).forEach( function ( file ) { if ( file.indexOf( "Gruntfile." ) === 0 && file !== "Gruntfile.js" ) { var name = file.split( "Gruntfile." )[1].split( ".js" )[0]; cfg[name] = require( "./Gruntfile." + name )( grunt ); } } ); grunt.initConfig( cfg ); grunt.config( 'projectConfig', grunt.file.readYAML( 'grunt-config.yml' ) ); /** * Add grunt tasks to a given task list. */ function addTask ( taskList, task, condition ) { if ( arguments.length < 3 ) { condition = true; } if ( condition ) { taskList.push( task ); } } // **************************************************************************************** // "dev" Task // **************************************************************************************** var devTasks = []; // Clean 'dist' and copy all relevant files to 'dist' addTask( devTasks, 'clean:empty_dist_dev' ); addTask( devTasks, 'copy:copy_to_dist_dev' ); // Replacements addTask( devTasks, 'replace:general_dev' ); addTask( devTasks, 'replace:dev' ); // JSHint addTask( devTasks, 'jshint', cfg.projectconfig.dev.jshint ); // Cleanup addTask( devTasks, 'clean:dev' ); addTask( devTasks, 'cleanempty:all' ); // Deploy to Qlik Sense Desktop addTask( devTasks, 'clean:empty_desktop', process.platform === 'win32' ); addTask( devTasks, 'copy:copy_to_desktop_dev', process.platform === 'win32' ); // Zip to xxx_dev.zip addTask( devTasks, 'compress:dev' ); grunt.registerTask( 'dev', devTasks ); // **************************************************************************************** // "release" Task // **************************************************************************************** var releaseTasks = []; // Clean 'dist' and copy all relevant files to 'dist' addTask( releaseTasks, 'clean:empty_dist' ); addTask( releaseTasks, 'copy:copy_to_dist_release' ); // Replacements addTask( releaseTasks, 'replace:general_release' ); addTask( releaseTasks, 'replace:release' ); // Cleanup addTask( releaseTasks, 'clean:release' ); addTask( releaseTasks, 'cleanempty:all' ); // Optimization & Uglification addTask( releaseTasks, 'uglify:release' ); // JSHint addTask( devTasks, 'jshint', cfg.projectconfig.dev.jshint ); // Deploy to Qlik Sense Desktop addTask( releaseTasks, 'clean:empty_desktop', process.platform === 'win32' ); addTask( releaseTasks, 'copy:copy_to_desktop_release', process.platform === 'win32' ); // Zip addTask( releaseTasks, 'compress:release' ); addTask( releaseTasks, 'compress:release_latest' ); grunt.registerTask( 'release', releaseTasks ); // **************************************************************************************** // "source" Task // **************************************************************************************** grunt.registerTask( 'source', [ 'compress:source' ] ); // **************************************************************************************** // "default" Task // **************************************************************************************** grunt.registerTask( 'default', 'dev' ); };