egroupware/Gruntfile.js

219 lines
8.3 KiB
JavaScript

/**
* EGroupware Gruntfile.js
*
* @link http://www.egroupware.org
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @author Ralf Becker <rb@egroupware.org>
* @copyright (c) 2016-21 by Ralf Becker <rb@egroupware.org>
*/
/**
* To install grunt to build minified javascript files you need to run:
*
* sudo npm install -g grunt-cli
* npm install # installs everything from package.json into node_modules dir
*
* To generate the now existing package.json:
* npm init
* npm install grunt --save-dev
* npm install grunt-newer --save-dev
* npm install grunt-contrib-cssmin --save-dev
*
* Building happens by running in your EGroupware directory:
*
* grunt # runs cssmin for all targets with changed files
* or
* grunt [newer:]cssmin:<target> # targets: pixelegg, jdots
*
* Please use only double quotes, as we parse this file as json to update it!
*
* @param {object} grunt
*/
module.exports = function (grunt) {
grunt.initConfig({
cssmin: {
options: {
shorthandCompacting: false,
sourceMap: true,
rebase: true
},
pixelegg: {
files: {
"pixelegg/css/pixelegg.min.css": [
"node_modules/flatpickr/dist/themes/light.css",
"api/js/jquery/chosen/chosen.css",
"api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css",
"vendor/egroupware/magicsuggest/magicsuggest.css",
"api/js/jquery/blueimp/css/blueimp-gallery.min.css",
"api/js/dhtmlxtree/codebase/dhtmlxtree.css",
"api/js/egw_action/test/skins/dhtmlxmenu_egw.css",
"vendor/bower-asset/diff2html/dist/diff2html.css",
"vendor/bower-asset/cropper/dist/cropper.min.css",
"api/templates/default/css/flags.css",
"api/templates/default/css/htmlarea.css",
"api/templates/default/def_tutorials.css",
"api/templates/default/etemplate2.css",
"pixelegg/css/pixelegg.css",
"api/templates/default/print.css",
"pixelegg/print.css"
],
"pixelegg/css/mobile.min.css": [
"node_modules/flatpickr/dist/themes/light.css",
"api/js/jquery/chosen/chosen.css",
"api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css",
"vendor/egroupware/magicsuggest/magicsuggest.css",
"api/js/jquery/blueimp/css/blueimp-gallery.min.css",
"api/js/dhtmlxtree/codebase/dhtmlxtree.css",
"api/js/egw_action/test/skins/dhtmlxmenu_egw.css",
"vendor/bower-asset/diff2html/dist/diff2html.css",
"vendor/bower-asset/cropper/dist/cropper.min.css",
"api/templates/default/css/flags.css",
"api/templates/default/css/htmlarea.css",
"api/templates/default/def_tutorials.css",
"api/templates/default/etemplate2.css",
"pixelegg/css/mobile.css",
"api/templates/default/print.css",
"pixelegg/print.css"
],
"pixelegg/mobile/fw_mobile.min.css": [
"node_modules/flatpickr/dist/themes/light.css",
"api/js/jquery/chosen/chosen.css",
"api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css",
"vendor/egroupware/magicsuggest/magicsuggest.css",
"api/js/jquery/blueimp/css/blueimp-gallery.min.css",
"api/js/dhtmlxtree/codebase/dhtmlxtree.css",
"api/js/egw_action/test/skins/dhtmlxmenu_egw.css",
"api/js/etemplate/lib/jsdifflib/diffview.css",
"vendor/bower-asset/cropper/dist/cropper.min.css",
"api/templates/default/css/flags.css",
"api/templates/default/css/htmlarea.css",
"api/templates/default/etemplate2.css",
"pixelegg/mobile/fw_mobile.css",
"api/templates/default/print.css",
"pixelegg/print.css"
],
"pixelegg/css/monochrome.min.css": [
"node_modules/flatpickr/dist/themes/light.css",
"api/js/jquery/chosen/chosen.css",
"api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css",
"vendor/egroupware/magicsuggest/magicsuggest.css",
"api/js/jquery/blueimp/css/blueimp-gallery.min.css",
"api/js/dhtmlxtree/codebase/dhtmlxtree.css",
"api/js/egw_action/test/skins/dhtmlxmenu_egw.css",
"vendor/bower-asset/diff2html/dist/diff2html.css",
"vendor/bower-asset/cropper/dist/cropper.min.css",
"api/templates/default/css/flags.css",
"api/templates/default/css/htmlarea.css",
"api/templates/default/def_tutorials.css",
"api/templates/default/etemplate2.css",
"pixelegg/css/monochrome.css",
"api/templates/default/print.css",
"pixelegg/print.css"
],
"pixelegg/css/modern.min.css": [
"node_modules/flatpickr/dist/themes/light.css",
"api/js/jquery/chosen/chosen.css",
"api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css",
"vendor/egroupware/magicsuggest/magicsuggest.css",
"api/js/jquery/blueimp/css/blueimp-gallery.min.css",
"api/js/dhtmlxtree/codebase/dhtmlxtree.css",
"api/js/egw_action/test/skins/dhtmlxmenu_egw.css",
"vendor/bower-asset/diff2html/dist/diff2html.css",
"vendor/bower-asset/cropper/dist/cropper.min.css",
"api/templates/default/css/flags.css",
"api/templates/default/css/htmlarea.css",
"api/templates/default/def_tutorials.css",
"api/templates/default/etemplate2.css",
"pixelegg/css/pixelegg.css",
"api/templates/default/print.css",
"pixelegg/print.css"
]
}
},
jdots: {
files: {
"jdots/css/high-contrast.min.css": [
"node_modules/flatpickr/dist/themes/light.css",
"api/js/jquery/chosen/chosen.css",
"api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css",
"vendor/egroupware/magicsuggest/magicsuggest.css",
"api/js/jquery/blueimp/css/blueimp-gallery.min.css",
"api/js/dhtmlxtree/codebase/dhtmlxtree.css",
"api/js/egw_action/test/skins/dhtmlxmenu_egw.css",
"vendor/bower-asset/diff2html/dist/diff2html.css",
"vendor/bower-asset/cropper/dist/cropper.min.css",
"api/templates/default/css/flags.css",
"api/templates/default/css/htmlarea.css",
"api/templates/default/def_tutorials.css",
"api/templates/default/etemplate2.css",
"api/templates/default/default.css",
"jdots/egw_fw.css",
"jdots/css/jdots.css",
"jdots/css/high-contrast.css",
"api/templates/default/print.css",
"jdots/print.css"
],
"jdots/css/jdots.min.css": [
"node_modules/flatpickr/dist/themes/light.css",
"api/js/jquery/chosen/chosen.css",
"api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css",
"vendor/egroupware/magicsuggest/magicsuggest.css",
"api/js/jquery/blueimp/css/blueimp-gallery.min.css",
"api/js/dhtmlxtree/codebase/dhtmlxtree.css",
"api/js/egw_action/test/skins/dhtmlxmenu_egw.css",
"vendor/bower-asset/diff2html/dist/diff2html.css",
"vendor/bower-asset/cropper/dist/cropper.min.css",
"api/templates/default/css/flags.css",
"api/templates/default/css/htmlarea.css",
"api/templates/default/def_tutorials.css",
"api/templates/default/etemplate2.css",
"api/templates/default/default.css",
"jdots/egw_fw.css",
"jdots/css/jdots.css",
"api/templates/default/print.css",
"jdots/print.css"
],
"jdots/css/orange-green.min.css": [
"node_modules/flatpickr/dist/themes/light.css",
"api/js/jquery/chosen/chosen.css",
"api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css",
"vendor/egroupware/magicsuggest/magicsuggest.css",
"api/js/jquery/blueimp/css/blueimp-gallery.min.css",
"api/js/dhtmlxtree/codebase/dhtmlxtree.css",
"api/js/egw_action/test/skins/dhtmlxmenu_egw.css",
"vendor/bower-asset/diff2html/dist/diff2html.css",
"vendor/bower-asset/cropper/dist/cropper.min.css",
"api/templates/default/css/flags.css",
"api/templates/default/css/htmlarea.css",
"api/templates/default/def_tutorials.css",
"api/templates/default/etemplate2.css",
"api/templates/default/default.css",
"jdots/egw_fw.css",
"jdots/css/jdots.css",
"jdots/css/orange-green.css",
"api/templates/default/print.css",
"jdots/print.css"
]
}
}
},
hub: {
all: {
src: [
"*/Gruntfile.js"
]
}
}
});
// Load plugin for css minificaton
grunt.loadNpmTasks("grunt-contrib-cssmin");
// Load the plugin that runs tasks only on modified files
//grunt.loadNpmTasks("grunt-newer");
// uncomment to run Gruntfile.js in apps / sub-directories
//grunt.loadNpmTasks('grunt-hub');
// Default task(s).
grunt.registerTask("default", ["cssmin"]);//, 'hub']);
};