|
|
module.exports = function (grunt) {
// Project configuration.
grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), terser: { options: { // Task-specific options go here.
}, build: { // Target-specific file lists and/or options go here.
src: 'src/main/resources/static/js/bundle.js', dest: 'src/main/resources/static/js/bundle.min.js' }, chat_worker: { src: 'src/main/resources/static/js/worker.js', dest: 'src/main/resources/static/js/worker.js' }, }, banner: `
* ----------------------------------------- * @date <%= grunt.template.today("yyyy-mm-dd") %> * @project Chatto * @author nova * @license GPL * ----------------------------------------- `,
usebanner: { dist: { options: { position: 'top', banner: '/*! <%= banner %> */ ' }, files: { src: ['src/main/resources/static/js/bundle.min.js', 'src/main/resources/static/js/worker.js'] } } }, browserify: { chat_worker_dev: { src: 'src/main/frontend/workers/encryption-worker/main.ts', dest: 'src/main/resources/static/js/worker.js', options: { browserifyOptions: { debug: true }, } }, dev: { src: 'src/main/frontend/chat/main.ts', dest: 'src/main/resources/static/js/bundle.js', options: { browserifyOptions: { debug: true }, } }, prod: { src: 'src/main/frontend/chat/main.ts', dest: 'src/main/resources/static/js/bundle.js', banner: '/*! Chat.js <%= grunt.template.today("yyyy-mm-dd") %> */ ', options: { browserifyOptions: { debug: false }, } }, chat_worker_prod: { src: 'src/main/frontend/workers/encryption-worker/main.ts', dest: 'src/main/resources/static/js/worker.min.js', }, options: { plugin: [ ['tsify', { target: 'ES6', noImplicitAny: true, esModuleInterop: true, allowSyntheticDefaultImports: true }], // register plugin by name
],
browserifyOptions: {}, } } });
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-terser');
// // Default task(s).
// grunt.registerTask('default', ['uglify']);
grunt.loadNpmTasks('grunt-browserify') grunt.loadNpmTasks('grunt-banner');
grunt.registerTask('default', ['browserify:dev', 'browserify:chat_worker_dev']) grunt.registerTask('prod', ["browserify:prod", 'browserify:chat_worker_dev', "terser", 'usebanner'])
};
|